创新互联小程序教程:SDK数据库Aggregate·过滤文档

Aggregate.match(object: Object): Aggregate

支持端:小程序 2.7.4, 云函数 0.8.1, Web

为牙克石等地区用户提供了全套网页设计制作服务,及牙克石网站建设行业解决方案。主营业务为成都网站制作、网站设计、外贸网站建设、牙克石网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

聚合阶段。根据条件过滤文档,并且把符合条件的文档传递给下一个流水线阶段。

参数

object: Object

返回值

Aggregate

API 说明

match 的形式如下:

match(<查询条件>)

查询条件与普通查询一致,可以用普通查询操作符,注意 match 阶段和其他聚合阶段不同,不可使用聚合操作符,只能使用查询操作符。

// 直接使用字符串
match({
  name: 'Tony Stark'
})

// 使用操作符
const _ = db.command
match({
  age: _.gt(18)
})

match 内使用查询操作符从小程序基础库 2.8.3、云函数 SDK 1.3.0 开始支持。

示例

假设集合 articles 有如下记录:

{ "_id" : "1", "author" : "stark",  "score" : 80 }
{ "_id" : "2", "author" : "stark",  "score" : 85 }
{ "_id" : "3", "author" : "bob",    "score" : 60 }
{ "_id" : "4", "author" : "li",     "score" : 55 }
{ "_id" : "5", "author" : "jimmy",  "score" : 60 }
{ "_id" : "6", "author" : "li",     "score" : 94 }
{ "_id" : "7", "author" : "justan", "score" : 95 }

匹配

下面是一个直接匹配的例子:

db.collection('articles')
  .aggregate()
  .match({
    author: 'stark'
  })
  .end()

这里的代码尝试找到所有 author 字段是 stark 的文章,那么匹配如下:

{ "_id" : "1", "author" : "stark", "score" : 80 }
{ "_id" : "2", "author" : "stark", "score" : 85 }

计数

match 过滤出文档后,还可以与其他流水线阶段配合使用。

比如下面这个例子,我们使用 group 进行搭配,计算 score 字段大于 80 的文档数量:

const _ = db.command
const $ = _.aggregate
db.collection('articles')
  .aggregate()
  .match({
    score: _.gt(80)
  })
  .group({
      _id: null,
      count: $.sum(1)
  })
  .end()

返回值如下:

{ "_id" : null, "count" : 3 }

分享文章:创新互联小程序教程:SDK数据库Aggregate·过滤文档
文章URL:http://www.zyruijie.cn/qtweb/news12/1912.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联