微信小程序之云开发collection指令

collection.count:

统计集合记录数或统计查询语句对应的结果记录数,注意这与集合权限设置有关,一个用户仅能统计其有读权限的记录数。比如查找所有由“北京日报”发布的文章的个数:

db.collectioin("article").where({
    author: "北京日报"
}).count().then(res => {
    console.log(res);
});

collection.orderBy:

方法接受一个必填字符串参数fieldName用于定义需要排序的字段,一个字符串参数order定义排序顺序。order只能取 asc或desc。
如果需要对嵌套字段排序,需要用 “点表示法” 连接嵌套字段,比如author.age表示字段author里的嵌套字段age。
同时也支持按多个字段排序,多次调用orderBy即可,多字段排序时的顺序会按照orderBy调用顺序先后对多个字段排序。
比如我想通过阅读量从大到小以及作者的年龄从小到大进行排序。那么可以使用以下代码来实现:

db.collection("article")
    .orderBy("read_count","desc")
    .orderBy("author.age","asc")
    .get()
    .then(res => {
        console.log(res);
    })

collection.limit:

指定查询结果集数量上限。比如一次性获取10篇文章,那么可以通过以下代码来实现:

const db = wx.cloud.database()
db.collection('article').limit(10)
  .get()
  .then(res => {
    console.log(res);
  })

collection.skip:

指定查询返回结果时从指定序列后的结果开始返回,常用于分页。比如跳过前面10篇文章,从第11篇开始获取。代码如下:

const db = wx.cloud.database()
db.collection('todos').skip(10)
  .get()
  .then(console.log)
  .catch(console.error)

collection.field:

指定返回结果中记录需返回的字段。比如只想获取article文章中的title字段。那么可以使用以下代码来实现:

const db = wx.cloud.database()
db.collection('todos').field({
  title: true
})
  .get()
  .then(console.log)
  .catch(console.error)

正则表达式:
从基础库2.3.2开始(wx-server-sdk从0.0.23开始),数据库支持正则表达式查询,开发者可以在查询语句中使用 JavaScript原生正则对象或使用db.RegExp方法来构造正则对象然后进行字符串匹配。在查询条件中对一个字段进行正则匹配即要求该字段的值可以被给定的正则表达式匹配,注意正则表达式不可用于db.command内(如db.command.in)。

你可能感兴趣的:(微信小程序之云开发,collection指令,云开发高级查询,collection.skip)