创新互联小程序教程:SDK数据库 Command·查询·表达式操作符

Command.expr(aggregateExpression: Expression): Command

支持端:云函数 1.4.0

创新互联专业成都网站设计、网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文推广等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。

查询操作符,用于在查询语句中使用聚合表达式,方法接收一个参数,该参数必须为聚合表达式

参数

aggregateExpression: Expression

要添加进数组的一个或多个元素

返回值

Command

使用说明

  1. expr 可用于在聚合 match 流水线阶段中引入聚合表达式
  2. 如果聚合 match 阶段是在 lookup 阶段内,此时的 expr 表达式内可使用 lookup 中使用 let 参数定义的变量,具体示例可见 lookup 的 指定多个连接条件 例子
  3. expr 可用在普通查询语句(where)中引入聚合表达式

示例代码 1:比较同一个记录中的两个字段

假设 items 集合的数据结构如下:

{
  "_id": string,
  "inStock": number, // 库存量
  "ordered": number  // 被订量
}

找出被订量大于库存量的记录:

const _ = db.command
const $ = _.aggregate
db.collection('items').where(_.expr($.gt('$ordered', '$inStock'))).get()

示例代码 2:与条件语句组合使用

假设 items 集合的数据结构如下:

{
  "_id": string,
  "price": number
}

假设加个小于等于 10 的打 8 折,大于 10 的打 5 折,让数据库查询返回打折后价格小于等于 8 的记录:

const _ = db.command
const $ = _.aggregate
db.collection('items').where(_.expr(
  $.lt(
    $.cond({
      if: $.gte('$price', 10),
      then: $.multiply(['$price', '0.5']),
      else: $.multiply(['$price', '0.8']),
    })
    ,
    8
  )
).get()

分享名称:创新互联小程序教程:SDK数据库 Command·查询·表达式操作符
网站URL:http://www.shufengxianlan.com/qtweb/news25/29575.html

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

广告

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