mongoDB关于Aggregation Pipeline Operators部分简单翻译

原文档位置:https://docs.mongodb.com/manual/reference/operator/aggregation/

1.$abs:取绝对值

{ $abs: <number> }

2.$add:字段相加

{ $add: [ <expression1>, <expression2>, ... ] }

3.$addToSet:仅能用于$group步骤下,返回去重并集后的数组

{ $addToSet: <expression> }

4.$allElementsTrue :将数组计算为一个集合,如果数组中没有元素为false,则返回true。否则,返回false。空数组返回true。

{ $allElementsTrue: [ <expression> ] }

5.$and:计算一个或多个表达式,如果所有表达式都为真,或者如果调用时没有参数表达式,则返回true。否则,$and返回false

{ $and: [ <expression1>, <expression2>, ... ] }

6.$arrayElemAt :返回指定数组索引中的元素

{ $arrayElemAt: [ <array>, <idx> ] }

7.$arrayToObject  :将数组转化为单个文档

情况1:是一个数组,数组结构该如下:[[字段名,字段值],[字段名,字段值]]

情况2:是一个数组文档,数组文档结构该如下:[{'k':'字段名',‘v’:'字段值'},{'k':'字段名',‘v’:'字段值'}]

{ $arrayToObject: <expression> }

8.$avg:在$project阶段使用时,$avg返回每个文档的指定表达式或表达式列表的平均值

语法1:{ $avg: <expression> } expression为数组

语法2:{ $avg: [ <expression1>, <expression2> ... ] }

9.$ceil:返回大于或等于指定数字的最小整数。

{ $ceil: <number> }

10.$cmp:对比2个值,并返回-1或1或0

  • 如果第一个值小于第二个值,则为-1。
  • 如果第一个值大于第二个值,则为1
  • 如果这两个值是等价的,则为0
{ $cmp: [ <expression1>, <expression2> ] }

11.$concat:连接字符串并返回合并后的字符串。

{ $concat: [ <expression1>, <expression2>, ... ] }

12.$concatArrays:连接数组以返回合并后的数组。

{ $concatArrays: [ <array1>, <array2>, ... ] }

13.$cond:判断条件,如果为true返回<true-case>,否则返回<false-case>

语法1:{ $cond: { if: <boolean-expression>, then: <true-case>, else: <false-case-> } }

语法2:{ $cond: [ <boolean-expression>, <true-case>, <false-case> ] }

14.$convert :将值转换为指定类型。input输入类型,to输出类型

{
   $convert:
      {
         input: <expression>,
         to: <type expression>,
         onError: <expression>,  // Optional.
         onNull: <expression>    // Optional.
      }
}

15.$dateFromParts :给定日期的组成属性,构造并返回日期对象。

语法1:
{
    $dateFromParts : {
        'year': <year>, 'month': <month>, 'day': <day>,
        'hour': <hour>, 'minute': <minute>, 'second': <second>,
        'milliseconds': <ms>, 'timezone': <tzExpression>
    }
}

语法2:
{
    $dateFromParts : {
        'isoWeekYear': <year>, 'isoWeek': <week>, 'isoDayOfWeek': <day>,
        'hour': <hour>, 'minute': <minute>, 'second': <second>,
        'milliseconds': <ms>, 'timezone': <tzExpression>
    }
}

例子:
{ $dateFromParts: { 'year' : 2017, 'month' : 0, 'day': 1, 'hour' : 12  } }
//ISODate("2016-12-01T12:00:00Z")

16.$dayOfMonth:返回1到31之间的数字

{ date: <dateExpression>, timezone: <tzExpression> }

17.$dayOfWeek:返回1(星期日)到7(星期六)之间的数字

{ $dayOfWeek: <dateExpression> }
{ date: <dateExpression>, timezone: <tzExpression> }

18.$divide:将第一个数除以另一个数并返回结果。

{ $divide: [ <expression1>, <expression2> ] }

19.$eq :对比2个参数,并返回boolean

{ $eq: [ <expression1>, <expression2> ] }

20.$filter:根据指定的条件选择返回的数组子集。返回一个只有与条件匹配的元素的数组。返回的元素处于原始顺序。

{ $filter: { input: <array>, as: <string>, cond: <expression> } }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值