做完了简单的增删改查操作之后,可以更深入地进行查找操作了,熟悉后端的同学都知道,后端80%是增删改查,而增删改查中80%又是查找,所以查找的排序和定量查找是基本功,现在就来实现一下小程序的按价格排序和条件筛选等功能。
首先,先写两个简陋的按钮表示排序吧:
然后就是绑定按钮点击事件orderByAsc()和orderByDesc(),在其中进行排序操作,排序代码如下:
wx.cloud.database.collection("表名")
.orderBy("排序所根据的字段", "asc") //第二个参数升序是asc,降序是desc
.get()
.then(res => {
})
.catch(err => {
})
可以看到排序功能就是在原先的查询功能只上加入了orderBy(),这里需要注意的是,不同于mysql,sql server等数据库语言,微信中的orderBy()是放在查询操作get()前面的,orderBy()放到get()后面会报错。另外,排序的话一般是数字,如果你所要排序的字段是字符串型的数字,是没法进行排序的,需要将该字段类型从”string”变为”number”。
知道佮排序了,那么这么一来,初始无序查询需要一串代码,升降序查询有需要两串代码,难免让人感到冗余,所以,需要精简代码,用if进行条件判断,wxjs也支持语句的直接拼接,使得我们需要写的代码减少很多:
有时候数据没有现在演示地这么少,我们需要进行分页操作,而分页操作的前提就是获取指定条数的数据,这是我们可以在get()之前加limit(),limit括号中的参数表示返回的条数。limit 在小程序端默认及最大上限为 20,在云函数端默认及最大上限为 1000。如果需要数据的起始位置不是第一个,而是要返回地2-5个的数据,可以在limit()后面加上.skip(),skip中的参数表示从第几个开始读。如图:这就返回了第二个到第四个的数据:
最后,还有一种查询就是对数值的区间进行查询,比如查询价格为50-100的书,查询价格大于200的书,和msyql等传统数据库类似,微信小程序也是在原先的.where()里面添加操作,实现条件查询,不过,微信小程序“大于小于”不是用>和<,而是使用了特殊的符号,具体如下:
上图为单条件查询,如果要进行多条件查询,也要用and连接,示例如下:
但这样的话and带来的括号太多了,很容易出错,可以采用以下方法简洁表示与关系:
甚至直接省略and
其他逻辑运算法or,not,nor的用法与and类似,大家可以查询微信开发文档学习:
感谢分享!共同学习,期待下一篇!
笔记做得很详细,很有参考价值,学习了
不错,学完之后也可以去试试使用另一个文档型数据库MongoDB
简洁的and写法get到了
对新手来说写的很友好,感觉很不错,期待你的下篇文章。
社区大佬真多我算是学到了