微信小程序实现分页查询详解
作者:低代码布道师 发布时间:2024-04-16 10:38:58
日常小程序经常需要分页查询的功能,本篇我们讲解一下低代码中如何实现分页查询的功能。要自己开发分页功能,可以先参考官方的方法
分页查询我们一般是需要有入参和出参,入参分别需要页码、每页大小、排序字段名称、排序方式、查询条件。
出参分别需要记录总条数、页码、每页大小、记录列表。
入参和出参知道之后,那在哪写代码呢?像分页这种功能一般属于后端的能力,低码工具中是在自定义连接器里写后端代码的。
创建自定义连接器
登录低码的控制台,点击新建自定义连接器
输入名称和标识
点击立即新建
输入名称和标识,意图选择查询列表,类型选择自定义代码
在界面中可以输入代码的部分就是我们编制后端逻辑代码的编辑器,可以在里边直接写代码。
云开发介绍
我们要实现后端代码,其实是要符合云开发的语法,我们打开云开发的官方文档,找到api部分
有个概念需要了解,就是collection。在文档型数据库里我们传统数据库的表对应的是collection,那如何找到collection呢?
我们可以打开云开发cloudbase,然后进入到我们的环境,找到数据库
列表上就是各个集合。有了集合那要怎么写代码呢?这里可以参考微搭官方文档的自定义代码部分,复制其中的代码进入到自定义代码编辑器中
module.exports = async function (params, context) {
const result = await context.database.collection('lcap-data-1TSuH5tum-product_qnniu21-preview').get();
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
records: result.data
};
};
代码写好之后需要做方法测试,先需要增加一个入参,增加后我们就可以看到执行的结果
分页实现思路
要实现分页,一共需要几个字段,第一个是求得总记录数,总记录数我们可以用count方法计算
module.exports = async function (params, context) {
const result = await context.database.collection('lcap-data-1TSuH5tum-product_qnniu21-preview').get();
const total = await context.database.collection('lcap-data-1TSuH5tum-product_qnniu21-preview').count();
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
total:total.total,
records: result.data
};
};
总的记录数有了,我们每次返回的结果不是全部返回,需要按照当前传过来的页码和每页显示的条数去做过滤数据
module.exports = async function (params, context) {
const result = await context.database.collection('lcap-data-1TSuH5tum-product_qnniu21-preview').skip(params.pageSize*(params.pageNo-1)).limit(params.pageSize).get();
const total = await context.database.collection('lcap-data-1TSuH5tum-product_qnniu21-preview').count();
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
total:total.total,
records: result.data
};
};
一切做好之后就可以点击出参映射,来自动映射出参
使用连接器
分页方法做好之后一般是需要在应用中使用,一种是可以在变量中直接使用
另外一种是可以在数据列表中绑定
为什么要自定义分页功能
官方生成的分页方法只能实现单表业务,而实际业务中我们经常需要拆分表,但是在多表查询的场景中又需要展示数据,这个时候就必须自己实现分页逻辑。下篇我们讲解一下多表分页查询如何实现,敬请期待。
来源:https://blog.csdn.net/u012877217/article/details/126007948


猜你喜欢
- 前几天在“CSS那些事儿”的群中,一位读者朋友(小土豆)问我书中提到首字下沉的时候为什么要增加一个清除浮动。当时我自己一时迷惑了,为什么呢,
- 三子棋的python实现代码,供大家参考,具体内容如下一、基本流程三子棋游戏实现逻辑如下:1、创建初始化3*3棋盘;2、玩家执U子,先进行落
- 环境系统: Mac 工具: Alfred, git, homebrew, pngpaste. 语言: perl 其他: Gitee工具下载g
- 本文讲述了Python多进程同步简单实现代码。分享给大家供大家参考,具体如下:#encoding=utf8from multiprocess
- 可以查看mysql文件目录my.ini文件,可以找到类似于 datadir="D:/beeagle/Program Files/M
- 下载源码git clone https://github.com/mysql/mysql-server.gitcd mysql-server
- 分组小括号() 有直接分组和命名分组直接分组: ()分组只显示小括号括起来的内容re.findall(r"(name)+
- 1.apache 在如下页面下载apache的for Linux 的源码包 http://www
- 什么是CSS裸奔节?CSS裸奔节就是将这整站的css样式都去掉,这样所有的布局,颜色,背景什么的就都没有了(除非你使用table布局),只剩
- 本文实例讲述了Python smallseg分词用法。分享给大家供大家参考。具体分析如下:#encoding=utf-8 #import p
- CSS执行顺序与优先权的问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其
- 数组去重复和数组排序'数组名次 Function Sort(ary,stra) KeepChecking =&n
- 需求说明当用户申请售后,商家未在n小时内处理,系统自动进行退款。商家拒绝后,用户可申请客服介入,客服x天内超时未处理,系统自动退款。用户收到
- 1、背景我们先谈谈为什么在Python编码过程中强烈推荐使用类型注解 ?Python对于初学者来说是非常好上手,原因是在于对计算机底层原理的
- 一、包说明分析context包:这个包分析的是1.15context包定义了一个Context类型(接口类型),通过这个Context接口类
- 上一章讲数据的处理,这一章讲数据处理之后呈现的结果,即你有可能看到Loss的走向等,这样方便我们调试代码。1.Tensorboard有两个常
- 1、生成配置文件''' 生成配置文件'''import configparse
- 前言:关于数据库范式,时常有听说过,一直没有详细去了解。一般数据库书籍或数据库课程会介绍范式相关内容,范式也经常出现在数据库考试题目中。不清
- 1、说明一个类没有声明自己的元类,默认他的元类就是type,除了使用元类type,用户也可以通过继承type来自定义元类。2、实例我们可以使
- 两张表,A表中的记录B表中不一定有。左连接:关注左边,右边没有就为空。右连接:关注右边,左边没有就为空。内连接:返回交集例如:student