跳到主要内容

查询数据

使用数据库 API 提供的 where 方法我们可以构造复杂的查询条件完成复杂的查询任务。在本节中我们还是使用 读取数据 中使用的示例数据。

查询指令#

假设我们需要查询进度大于 30% 的待办事项,那么传入对象表示全等匹配的方式就无法满足了,这时就需要用到查询指令。数据库 API 提供了大于、小于等多种查询指令,这些指令都暴露在 db.command 对象上。例如查询进度大于 30% 的待办事项:

const cloudbase = require("@cloudbase/js-sdk");
const app = cloudbase.init({  env: "xxxx"});// 1. 获取数据库引用var db = app.database();
const _ = db.command;db.collection("todos")  .where({    // gt 方法用于指定一个 "大于" 条件,此处 _.gt(30) 是一个 "大于 30" 的条件    progress: _.gt(30)  })  .get()  .then((res) => {    console.log(res.data);  });

API 提供了以下查询指令:

查询指令说明
eq等于
neq不等于
lt小于
lte小于或等于
gt大于
gte大于或等于
in字段值在给定数组中
nin字段值不在给定数组中

具体的查询指令 API 文档可参考各 SDK API 参考。

逻辑指令#

除了指定一个字段满足一个条件之外,我们还可以通过指定一个字段需同时满足多个条件,例如我们 查询进度小于或等于 50%颜色为白色或黄色 的待办事项:

const cloudbase = require("@cloudbase/js-sdk");
const app = cloudbase.init({  env: "xxxx"});// 1. 获取数据库引用var db = app.database();
const _ = db.command;db.collection("todos")  .where(    _.or([      {        progress: _.lte(50)      },      {        style: {          color: _.in(["white", "yellow"])        }      }    ])  )  .get()  .then((res) => {    console.log(res.data);  });

具体的查询指令 API 文档可参考各 SDK API 参考。