聚合操作符

operators description
abs 聚合操作符。返回一个数字的绝对值。
add 聚合操作符。将数字相加或将数字加在日期上。如果数组中的其中一个值是日期,那么其他值将被视为毫秒数加在该日期上。
addToSet 聚合运算符。向数组中添加值,如果数组中已存在该值,不执行任何操作。它只能在 group stage 中使用。
allElementsTrue 输入一个数组,或者数组字段的表达式。如果数组中所有元素均为真值,那么返回 true,否则返回 false。空数组永远返回 true
and 聚合操作符。给定多个表达式,and 仅在所有表达式都返回 true 时返回 true,否则返回 false
anyElementTrue 输入一个数组,或者数组字段的表达式。如果数组中任意一个元素为真值,那么返回 true,否则返回 false。空数组永远返回 false
arrayElemAt 聚合操作符。返回在指定数组下标的元素。
arrayToObject 聚合操作符。将一个数组转换为对象。
avg 返回一组集合中,指定字段对应数据的平均值。
ceil 聚合操作符。向上取整,返回大于或等于给定数字的最小整数。
cmp 聚合操作符。给定两个值,返回其比较值:
concat 连接字符串,返回拼接后的字符串。
concatArrays 聚合操作符。将多个数组拼接成一个数组。
cond 聚合操作符。计算布尔表达式,返回指定的两个值其中之一。
dateFromParts 给定日期的相关信息,构建并返回一个日期对象。
dateFromString 将一个日期/时间字符串转换为日期对象
dateToString 根据指定的表达式将日期对象格式化为符合要求的字符串。
dayOfMonth 返回日期字段对应的天数(一个月中的哪一天),是一个介于 1 至 31 之间的数字。
dayOfWeek 返回日期字段对应的天数(一周中的第几天),是一个介于 1(周日)到 7(周六)之间的整数。
dayOfYear 返回日期字段对应的天数(一年中的第几天),是一个介于 1 到 366 之间的整数。
divide 聚合操作符。传入被除数和除数,求商。
eq 聚合操作符。匹配两个值,如果相等则返回 true,否则返回 false
exp 聚合操作符。取 e(自然对数的底数,欧拉数) 的 n 次方。
filter 聚合操作符。根据给定条件返回满足条件的数组的子集。
first 返回指定字段在一组集合的第一条记录对应的值。仅当这组集合是按照某种定义排序( sort )后,此操作才有意义。
floor 聚合操作符。向下取整,返回大于或等于给定数字的最小整数。
gt 聚合操作符。匹配两个值,如果前者大于后者则返回 true,否则返回 false
gte 聚合操作符。匹配两个值,如果前者大于或等于后者则返回 true,否则返回 false
hour 返回日期字段对应的小时数,是一个介于 0 到 23 之间的整数。
ifNull 聚合操作符。计算给定的表达式,如果表达式结果为 null、undefined 或者不存在,那么返回一个替代值;否则返回原值。
in 聚合操作符。给定一个值和一个数组,如果值在数组中则返回 true,否则返回 false
indexOfArray 聚合操作符。在数组中找出等于给定值的第一个元素的下标,如果找不到则返回 -1。
indexOfBytes 在目标字符串中查找子字符串,并返回第一次出现的 UTF-8 的字节索引(从0开始)。如果不存在子字符串,返回 -1。
indexOfCP 在目标字符串中查找子字符串,并返回第一次出现的 UTF-8code point 索引(从0开始)。如果不存在子字符串,返回 -1。
isArray 聚合操作符。判断给定表达式是否是数组,返回布尔值。
isoDayOfWeek 返回日期字段对应的 ISO 8601 标准的天数(一周中的第几天),是一个介于 1(周一)到 7(周日)之间的整数。
isoWeek 返回日期字段对应的 ISO 8601 标准的周数(一年中的第几周),是一个介于 1 到 53 之间的整数。
isoWeekYear 返回日期字段对应的 ISO 8601 标准的天数(一年中的第几天)。
last 返回指定字段在一组集合的最后一条记录对应的值。仅当这组集合是按照某种定义排序( sort )后,此操作才有意义。
let 自定义变量,并且在指定表达式中使用,返回的结果是表达式的结果。
literal 直接返回一个值的字面量,不经过任何解析和处理。
ln 聚合操作符。计算给定数字在自然对数值。
log 聚合操作符。计算给定数字在给定对数底下的 log 值。
log10 聚合操作符。计算给定数字在对数底为 10 下的 log 值。
lt 聚合操作符。匹配两个值,如果前者小于后者则返回 true,否则返回 false
lte 聚合操作符。匹配两个值,如果前者小于或等于后者则返回 true,否则返回 false
map 聚合操作符。类似 JavaScript Array 上的 map 方法,将给定数组的每个元素按给定转换方法转换后得出新的数组。
max 聚合操作符。返回一组数值的最大值。
mergeObjects 将多个文档合并为单个文档。
millisecond 返回日期字段对应的毫秒数,是一个介于 0 到 999 之间的整数。
min 聚合操作符。返回一组数值的最小值。
minute 返回日期字段对应的分钟数,是一个介于 0 到 59 之间的整数。
mod 聚合操作符。取模运算,取数字取模后的值。
month 返回日期字段对应的月份,是一个介于 1 到 12 之间的整数。
multiply 聚合操作符。取传入的数字参数相乘的结果。
neq 聚合操作符。匹配两个值,如果不相等则返回 true,否则返回 false
not 聚合操作符。给定一个表达式,如果表达式返回 true,则 not 返回 false,否则返回 true
objectToArray 聚合操作符。将一个对象转换为数组。方法把对象的每个键值对都变成输出数组的一个元素,元素形如 { k: <key>, v: <value> }
or 聚合操作符。给定多个表达式,如果任意一个表达式返回 true,则 or 返回 true,否则返回 false
pow 聚合操作符。求给定基数的指数次幂。
push group 阶段,返回一组中表达式指定列与对应的值,一起组成的数组。
range 聚合操作符。返回一组生成的序列数字。给定开始值、结束值、非零的步长,range 会返回从开始值开始逐步增长、步长为给定步长、但不包括结束值的序列。
reduce 聚合操作符。类似 JavaScript 的 reduce 方法,应用一个表达式于数组各个元素然后归一成一个元素。
reverseArray 聚合操作符。返回给定数组的倒序形式。
second 返回日期字段对应的秒数,是一个介于 0 到 59 之间的整数,在特殊情况下(闰秒)可能等于 60。
setDifference 聚合操作符,输入两个集合,输出只存在于第一个集合中的元素。
setEquals 聚合操作符,输入两个集合,判断两个集合中包含的元素是否相同(不考虑顺序、去重)。
setIntersection 聚合操作符,输入两个集合,输出两个集合的交集。
setIsSubset 聚合操作符,输入两个集合,判断第一个集合是否是第二个集合的子集。
setUnion 聚合操作符,输入两个集合,输出两个集合的并集。
size 聚合操作符。返回数组长度。
slice 聚合操作符。类似 JavaScritp 的 slice 方法。返回给定数组的指定子集。
split 按照分隔符分隔数组,并且删除分隔符,返回子字符串组成的数组。如果字符串无法找到分隔符进行分隔,返回原字符串作为数组的唯一元素。
sqrt 聚合操作符。求平方根。
stdDevPop 聚合操作符。返回一组字段对应值的标准差。
stdDevSamp 聚合操作符。计算输入值的样本标准偏差。如果输入值代表数据总体,或者不概括更多的数据,请改用 db.command.aggregate.stdDevPop
strLenBytes 计算并返回指定字符串中 utf-8 编码的字节数量。
strLenCP 计算并返回指定字符串的UTF-8 code points 数量。
strcasecmp 对两个字符串在不区分大小写的情况下进行大小比较,并返回比较的结果。
substr 返回字符串从指定位置开始的指定长度的子字符串。它是 db.command.aggregate.substrBytes 的别名,更推荐使用后者。
substrBytes 返回字符串从指定位置开始的指定长度的子字符串。子字符串是由字符串中指定的 UTF-8 字节索引的字符开始,长度为指定的字节数。
substrCP 返回字符串从指定位置开始的指定长度的子字符串。子字符串是由字符串中指定的 UTF-8 字节索引的字符开始,长度为指定的字节数。
subtract 聚合操作符。将两个数字相减然后返回差值,或将两个日期相减然后返回相差的毫秒数,或将一个日期减去一个数字返回结果的日期。
sum 聚合操作符。计算并且返回一组字段所有数值的总和。
switch 聚合操作符。根据给定的 switch-case-default 计算返回值、
toLower 将字符串转化为小写并返回。
toUpper 将字符串转化为大写并返回。
trunc 聚合操作符。将数字截断为整形。
week 返回日期字段对应的周数(一年中的第几周),是一个介于 0 到 53 之间的整数。
year 返回日期字段对应的年份。
zip 聚合操作符。把二维数组的第二维数组中的相同序号的元素分别拼装成一个新的数组进而组装成一个新的二维数组。如可将 [ [ 1, 2, 3 ], [ "a", "b", "c" ] ] 转换成 [ [ 1, "a" ], [ 2, "b" ], [ 3, "c" ] ]