使用数据库API提供的where方法可以构造复杂的查询条件,完成复杂的查询任务

假设要查询价格大于20元的课程,那么传入对象表示全等匹配的方式就无法满足了,这时需要用到查询指令

数据库API提供了大于、小于等多种查询指令,这些指令都暴露在db.command对象上

例如,查询价格大于20元的课程,代码如示例5-2所示。

  1. Page({
  2. onLoad: function (options) {
  3. const db = wx.cloud.database()
  4. const _ = db.command;
  5. db.collection('courses').where({
  6. price: _.gt(20)
  7. })
  8. .get({
  9. success(res) {
  10. console.log(res.data)
  11. }
  12. })
  13. }
  14. })

gt方法

用于指定一个“大于”条件,此处_.gt(20)是一个“大于20”的条件

API提供的查询指令如表5.1所示。
image.png

除此之外,还有逻辑指令and和or,用来指定一个字段需同时满足多个条件,如用and逻辑指令查询价格在20~30元的课程,代码如下

  1. db.collection('courses').where({
  2. progress: _.gt(20).and(_.lt(30))
  3. })
  4. .get({
  5. success(res) {
  6. console.log(res.data)
  7. }
  8. })

and方法用于指定一个“与”条件,此处表示需同时满足大于20元和小于30元两个条件