操作符
前言
一、算术表达式操作符
1.1 $abs
$abs
返回一个数字的绝对值。
1.2 $add
$add
添加数字以返回总和,或添加数字和日期以返回新日期。如果添加数字和日期,则将数字视为毫秒。接受任意数量的参数表达式,但一个表达式最多只能解析为一个日期。
1.3 $ceil
$ceil
返回大于或等于指定数字的最小整数。
1.4 $divide
$divide
返回第一个数字除以第二个数字的结果。接受两个参数表达式。
1.5 $exp
$exp
将 e 提升到指定的指数。
1.6 $floor
$floor
返回小于或等于指定数字的最大整数。
1.7 $ln
$ln
计算数字的自然对数。
1.8 $log
$log
以指定基数计算数字的对数。
1.9 $log10
$log10
计算一个数字以 10 为底的对数。
1.10 $mod
$mod
返回第一个数字除以第二个数字的余数。接受两个参数表达式。
1.11 $multiply
$multiply
将数字相乘以返回乘积。接受任意数量的参数表达式。
语法
{ $multiply: [ <expression1>, <expression2>, ... ] }
1.12 $pow
$pow
将一个数字提升到指定的指数。
1.13 $round
$round
将数字舍入到整数或指定的小数位。
1.14 $sqrt
$sqrt
计算平方根。
1.15 $subtract
$subtract
返回第一个值减去第二个值后的结果。如果这两个值均为数字,则返回差值。如果这两个值均为日期,则返回以毫秒为单位的差值。如果这两个值一个为日期而另一个为数字(以毫秒为单位),则返回生成的日期。接受两个参数表达式。如果这两个值一个为日期而另一个为数字,请先指定日期参数,因为用数字减去日期没有意义。
1.16 $trunc
$trunc
将数字截断为整数或指定的小数位。
二、数组表达式操作符
2.1 $arrayElemAt
$arrayElemAt
返回位于指定数组索引处的元素。
语法
{ $arrayElemAt: [ <array>, <idx> ] }
-
array
: 数组 -
idx
: 索引、下标
2.2 $arrayToObject
$arrayToObject
将键值对数组转换为文档。
2.3 $concatArrays
$concatArrays
连接数组以返回连接后的数组。
2.4 $filter
$filter
选择数组的子集,以返回仅包含与筛选条件匹配的元素的数组。
2.5 $firstN
$firstN
从数组开头返回指定数量的元素。与 $firstN 累加器不同。
2.6 $in
$in
返回一个布尔值,它可表示指定的值是否在数组中。
2.7 $indexOfArray
$indexOfArray
搜索数组中出现的指定值,并返回首次出现的数组索引。数组索引从零开始。
2.8 $isArray
$isArray
确定操作数是否为数组。返回一个布尔值。
2.9 $lastN
$lastN
从数组末尾返回指定数量的元素。与 $lastN 累加器不同。
2.10 $map
$map
对数组的每个元素应用子表达式,并按顺序返回生成值的数组。接受已命名的参数。
2.11 $maxN
$maxN
返回数组中 n 个最大值。与 $maxN 累加器不同。
2.12 $minN
$minN
返回数组中 n 个最小值。与 $minN 累加器不同。
2.13 $objectToArray
$objectToArray
将文档转换为表示键值对的文档数组。
2.14 $range
$range
根据用户定义的输入,输出一个包含整数序列的数组。
2.15 $reduce
$reduce
将表达式应用于数组中的每个元素,并将它们组合成一个值。
2.16 $reverseArray
$reverseArray
返回元素顺序相反的数组。
2.17 $size
$size
返回数组中元素的个数。接受单个表达式作为参数。
2.18 $slice
$slice
返回数组的子集。
2.19 $sortArray
$sortArray
对数组的元素进行排序。
2.20 $zip
$zip
将两个数组进行合并。
三、按位操作符
3.1 $bitAnd
$bitAnd
返回对 int 或long 值的数组执行按位 and 操作的结果。
3.2 $bitNot
$bitNot
返回对单个参数或包含单个 int 或 long 值的数组执行按位 not 操作的结果。
3.3 $bitOr
$bitOr
返回对 int 或long 值的数组执行按位 or 操作的结果。
3.4 $bitXor
$bitXor
返回对 int 和 long 值的数组执行按位 xor(排他或)操作的结果。
四、布尔表达式操作符
4.1 $and
$and
仅当所有表达式的计算结果均为 true
时才返回 true
。接受任意数量的参数表达式。
语法
{ $and: [ <expression1>, <expression2>, ... ] }
用法
db.example.find({ $expr: { $and: [ { $regexFindAll: { input: "$name", regex: /^剑/ } }, { $gt: [ "$price", 4800 ] } ] }});
4.2 $not
$not
返回与参数表达式相反的布尔值。接受单个参数表达式。
4.3 $or
$or
当任何表达式的计算结果为 true
时,返回 true
。接受任意数量的参数表达式。
五、比较表达式操作符
5.1 $cmp
$cmp
如果两个值相等,则返回 0;如果第一个值大于第二个值,则返回 1;如果第一个值小于第二个值,则返回 -1。
5.2 $eq
$eq
比较两个值并返回, 当数值相等时, 返回 true
。当值不相等时, 返回 false
。$eq
会同时比较值和类型,使用指定的 BSON
比较顺序来比较不同类型的数。
语法
{ $eq: [ <expression1>, <expression2> ] }
用法
db.inventory.insertMany( [
{ _id : 1, item : "abc1", description: "product 1", qty: 300 },
{ _id : 2, item : "abc2", description: "product 2", qty: 200 },
{ _id : 3, item : "xyz1", description: "product 3", qty: 250 },
{ _id : 4, item : "VWZ1", description: "product 4", qty: 300 },
{ _id : 5, item : "VWZ2", description: "product 5", qty: 180 }
] )
db.inventory.aggregate(
[
{
$project:
{
item: 1,
qty: 1,
qtyEq250: { $eq: [ "$qty", 250 ] }, // 使用 $eq 操作符确定 qty 是否等于 250
_id: 0
}
}
]
)
5.3 $gt
$gt
如果第一个值大于第二个值,则返回 true
。
语法
{ $gt: [ <expression1>, <expression2> ] }
用法
db.inventory.insertMany( [
{ _id : 1, item : "abc1", description: "product 1", qty: 300 },
{ _id : 2, item : "abc2", description: "product 2", qty: 200 },
{ _id : 3, item : "xyz1", description: "product 3", qty: 250 },
{ _id : 4, item : "VWZ1", description: "product 4", qty: 300 },
{ _id : 5, item : "VWZ2", description: "product 5", qty: 180 }
] )
db.inventory.aggregate(
[
{
$project:
{
item: 1,
qty: 1,
qtyGt250: { $gt: [ "$qty", 250 ] }, // 使用 $gt 操作符确定 qty 是否大于 250
_id: 0
}
}
]
)
5.4 $gte
$gte
如果第一个值大于等于第二个值,则返回 true。
5.5 $lt
$lt
如果第一个值小于第二个值,则返回 true
。
语法
{ $lt: [ <expression1>, <expression2> ] }
用法
db.inventory.insertMany( [
{ _id : 1, item : "abc1", description: "product 1", qty: 300 },
{ _id : 2, item : "abc2", description: "product 2", qty: 200 },
{ _id : 3, item : "xyz1", description: "product 3", qty: 250 },
{ _id : 4, item : "VWZ1", description: "product 4", qty: 300 },
{ _id : 5, item : "VWZ2", description: "product 5", qty: 180 }
] )
db.inventory.aggregate(
[
{
$project:
{
item: 1,
qty: 1,
qtyLt250: { $lt: [ "$qty", 250 ] }, // 使用 $lt 操作符来确定 qty 是否小于 250
_id: 0
}
}
]
)
5.6 $lte
$lte
如果第一个值小于等于第二个值,则返回 true。
5.7 $ne
$ne
如果值不相等,则返回 true。
六、条件表达式操作符
6.1 $cond
$cond
一种三元运算符,它可用于计算一个表达式,并根据结果返回另外两个表达式之一的值。接受有序列表中的三个表达式或三个已命名的参数。
6.2 $ifNull
$ifNull
返回第一个表达式的非空结果;或者,如果第一个表达式生成空结果,则返回第二个表达式的结果。Null 结果包含未定义值或缺失字段的情况。接受两个表达式以作为参数。第二个表达式的结果可能为 null。
6.3 $switch
$switch
对一系列 case 表达式求值。当它找到计算结果为 true 的表达式时,$switch 会执行指定表达式并脱离控制流。
七、自定义聚合表达式操作符
7.1 $accumulator
$accumulator
定义自定义累加器函数。
7.2 $function
$function
定义自定义函数。
八、数据大小操作符
8.1 $binarySize
$binarySize
返回给定字符串或二进制数据值内容的大小(以字节为单位)。
8.2 $bsonSize
$bsonSize
以字节为单位返回给定文档(即 bsontype Object) 的大小(当编码为 BSON 时)。
九、日期表达式操作符
9.1 $dateAdd
$dateAdd
向日期对象添加多个时间单位。
9.2 $dateDiff
$dateDiff
返回两个日期之间的差值。
9.3 $dateFromParts
$dateFromParts
根据日期的组成部分构造一个 BSON 日期对象。
9.4 $dateFromString
$dateFromString
将日期/时间字符串转换为日期对象。
9.5 $dateSubtract
$dateSubtract
从日期对象中减去多个时间单位。
9.6 $dateToParts
$dateToParts
返回包含日期组成部分的文档。
9.7 $dateToString
$dateToString
以格式化字符串的形式返回日期。
9.8 $dateTrunc
$dateTrunc
截断日期。
9.9 $dayOfMonth
$dayOfMonth
以介于 1 和 31 之间的数字返回某一日期的“月中的某一天”。
9.10 $dayOfWeek
$dayOfWeek
以 1(星期日)和 7(星期六)之间的数字形式返回以星期表示的日期。
9.11 $dayOfYear
$dayOfYear
以 1 到 366(闰年)之间的数字形式返回返回日期的年月日。
9.12 $hour
$hour
以数字形式返回日期中的小时部分(0 到 23)。
9.13 $isoDayOfWeek
$isoDayOfWeek
以 ISO 8601 格式返回工作日数字,范围为 1(星期一)到 7(星期日)。
9.14 $isoWeek
$isoWeek
以 ISO 8601 格式返回周数,范围从 1 到 53。周数从 1 开始,即包含一年中第一个星期四的那个星期(星期一到星期日)。
9.15 $isoWeekYear
$isoWeekYear
以 ISO 8601 格式返回年份号。一年从第一周的星期一 (ISO 8601) 开始,到最后一周的星期日 (ISO 8601) 结束。
9.16 $millisecond
$millisecond
以 0 到 999 之间的数字形式返回日期的毫秒数。
9.17 $minute
$minute
返回日期的分钟数(0 到 59)。
9.18 $month
$month
以 1(一月)到 12(十二月)之间的数字形式返回日期的月份。
9.19 $second
$second
以 0 到 60 之间的数字返回日期的秒数(跳秒)。
9.20 $toDate
$toDate
将数值转换为日期。
9.21 $week
$week
以 0(一年中第一个星期日之前的部分周)和 53(闰年)之间的数字形式返回日期的周数。
9.22 $year
$year
以数字形式返回日期的年份(例如 2014)。
9.23 $add
$add
添加数字和日期以返回新日期。如果添加数字和日期,则将数字视为毫秒。接受任意数量的参数表达式,但一个表达式最多只能解析为一个日期。
9.24 $subtract
$subtract
返回第一个值减去第二个值后的结果。如果这两个值均为日期,则返回以毫秒为单位的差值。如果这两个值一个为日期而另一个为数字(以毫秒为单位),则返回生成的日期。接受两个参数表达式。如果这两个值一个为日期而另一个为数字,请先指定日期参数,因为用数字减去日期没有意义。
十、字面值表达式操作符
10.1 $literal
$literal
返回一个值而不进行解析。用于聚合管道可解释为表达式的值。例如,对以美元符号 (literal 表达式,以避免解析为字段路径。
十一、其他操作符
11.1 $getField
$getField
从文档中返回指定字段的值。您可以使用 ) 开头的字段的值。
11.2 $rand
$rand
返回介于 0 和 1 之间的随机浮点数。
11.3 $sampleRate
$sampleRate
以给定的采样率随机选择文档。虽然每次运行所选文件的确切数量各不相同,但所选数量近似于以文件总数百分比表示的采样率。
11.4 $toHashedIndexKey
$toHashedIndexKey
使用 MongoDB 用于创建哈希索引的相同哈希函数计算并返回输入表达式的哈希值。
十二、对象表达式操作符
12.1 $mergeObjects
$mergeObjects
将多个文档合并为一个文档。
12.2 $objectToArray
$objectToArray
将文档转换为表示键值对的文档数组。
12.3 $setField
$setField
添加、更新或删除文档中的指定字段。您可以使用 ) 开头的字段。
十三、集表达式操作符
13.1 $allElementsTrue
$allElementsTrue
如果集合中没有元素计算结果为 false ,则返回 true,否则返回 false。接受单个参数表达式。
13.2 $anyElementTrue
$anyElementTrue
如果集合中的任何元素的计算结果为 true,则返回 true;否则,返回 false。接受单个参数表达式。
13.3 $setDifference
$setDifference
返回集合,其中的元素出现在第一个集合中,但没有出现在第二个集合中;即执行第二个集合相对于第一个集合的相对补集。实际接受两个参数表达式。
13.4 $setEquals
$setEquals
如果输入集具有相同的不同元素,则返回 true。接受两个或多个参数表达式。
13.5 $setIntersection
$setIntersection
返回一个集,其中包含出现在所有输入集中的元素。接受任意数量的参数表达式。
13.6 $setIsSubset
$setIsSubset
如果第一个集的所有元素都出现在第二个集中,包括当第一个集等于第二个集时,即不是严格子集,则返回 true。实际接受两个参数表达式。
13.7 $setUnion
$setUnion
返回一个集,其中包含出现在任何输入集中的元素。
十四、字符串表达式操作符
14.1 $concat
$concat
连接任意数量的字符串。
14.2 $dateFromString
$dateFromString
将日期/时间字符串转换为日期对象。
14.3 $dateToString
$dateToString
以格式化字符串的形式返回日期。
14.4 $indexOfBytes
$indexOfBytes
搜索字符串中出现的子字符串,并返回首次出现的 UTF-8 字节索引。如果未找到该子字符串,则返回 -1。
14.5 $indexOfCP
$indexOfCP
在字符串中搜索子字符串的出现位置,并返回第一次出现时的 UTF-8 码位索引。如果未找到子字符串,则返回 -1。
14.6 $ltrim
$ltrim
删除字符串开头和结尾的空白或指定字符。
14.7 $regexFind
$regexFind
将正则表达式应用于字符串,并返回第一个匹配子字符串的信息。
14.8 $regexFindAll
$regexFindAll
将正则表达式 (regex) 应用于字符串,并返回有关所有匹配子字符串的信息。
14.9 $regexMatch
$regexMatch
将正则表达式 (regex) 应用于字符串并返回一个布尔值,它可表示是否已找到匹配项。
14.10 $replaceOne
$replaceOne
替换给定输入中匹配字符串的第一个实例。
14.11 $replaceAll
$replaceAll
替换给定输入中匹配字符串的所有实例。
14.12 $rtrim
$rtrim
删除字符串结尾的空白或指定字符。
14.13 $split
$split
根据分隔符将字符串拆分为子字符串。返回子字符串数组。如果在字符串中找不到分隔符,则返回包含原始字符串的数组。
14.14 $strLenBytes
$strLenBytes
返回字符串中 UTF-8 编码的字节数。
14.15 $strLenCP
$strLenCP
返回字符串中 UTF-8 代码点的数量。
14.16 $strcasecmp
$strcasecmp
执行不区分大小写的字符串比较并返回:如果两个字符串相等,则返回 0;如果第一个字符串大于第二个字符串,则返回 1;如果第一个字符串小于第二个字符串,则返回 -1。
14.17 $substr
$substr
已弃用。使用substrCP。
14.18 $substrBytes
$substrBytes
返回字符串的子串。从字符串中指定的 UTF-8 字节索引(从零开始)处的字符开始,持续指定的字节数。
14.19 $substrCP
$substrCP
返回字符串的子串。从字符串中指定 UTF-8 代码点 (CP) 索引(从零开始)处的字符开始,持续指定的代码点数。
14.20 $toLower
$toLower
将字符串转换为小写。接受单个参数表达式。
14.21 $toString
$toString
将值转换为字符串。
14.22 $trim
$trim
删除字符串开头和结尾的空白或指定字符。
14.23 $toUpper
$toUpper
将字符串转换为大写。接受单个参数表达式。
十五、文本表达式操作符
15.1 $meta
$meta
访问与聚合操作相关的每个文档的可用元数据。
十六、时间戳表达式操作符
16.1 $tsIncrement
$tsIncrement
以 long 形式返回时间戳中的递增序数。
16.2 $tsSecond
$tsSecond
以 long 形式返回时间戳中的秒数。
十七、三角函数表达式操作符
17.1 $sin
$sin
返回以弧度为单位测量的某一值的正弦值。
17.2 $cos
$cos
返回以弧度为单位测量的某一值的余弦。
17.3 $tan
$tan
返回以弧度为单位来测量的某一值的正切值。
17.4 $asin
$asin
以弧度为单位返回值的反正弦。
17.5 $acos
$acos
以弧度为单位返回值的反余弦。
17.6 $atan
$atan
以弧度为单位返回某一值的反切值(弧正切值)。
17.7 $atan2
$atan2
以弧度为单位返回 y / x 的反正切,其中 y 和 x 分别为传递给该表达式的第一个值和第二个值。
17.8 $asinh
$asinh
以弧度为单位返回数值的反双曲正弦(双曲弧正弦)值。
17.9 $acosh
$acosh
以弧度为单位返回数值的反双曲余弦(双曲弧余弦)值。
17.10 $atanh
$atanh
以弧度为单位返回数值的反双曲正切(双曲弧切)值。
17.11 $sinh
$sinh
返回以弧度为单位来测量的某一值的双曲正弦值。
17.12 $cosh
$cosh
返回以弧度为单位的值的双曲余弦值。
17.13 $tanh
$tanh
以弧度为单位返回数值的双曲正切值。
17.14 $degreesToRadians
$degreesToRadians
将值从度数转换为弧度。
17.15 $radiansToDegrees
$radiansToDegrees
将值从弧度转换为度数。
十八、类型表达式操作符
18.1 $convert
$convert
将数值转换为指定类型。
18.2 $isNumber
$isNumber
如果指定表达式解析为 integer、decimal、double 或 long,则返回布尔值 true。
如果表达式解析为任何其他 BSON 类型、null 或缺失字段,返回布尔值 false。
18.3 $toBool
$toBool
将值转换为布尔值。
18.4 $toDate
$toDate
将数值转换为日期。
18.5 $toDecimal
$toDecimal
将值转换为 Decimal128。
18.6 $toDouble
$toDouble
将值转换为 double。
18.7 $toInt
$toInt
将值转换为整数。
18.8 $toLong
$toLong
将值转换为长整数。
18.9 $toObjectId
$toObjectId
将值转换为 ObjectId。
18.10 $toString
$toString
将值转换为字符串。
18.11 $type
$type
返回字段的 BSON 数据类型。
18.12 $toUUID
$toUUID
将字符串转换为 UUID。
十九、聚合累加器操作符
19.1 $accumulator
$accumulator
返回用户定义的累加器函数的结果。
19.2 $addToSet
$addToSet
返回每个群组的唯一表达式值数组。未定义数组元素的排序。5.0
版中的更改:可在 $setWindowFields
阶段使用。
19.3 $avg
$avg
返回数值的平均值。忽略非数字值。 5.0
版中的更改:可在 $setWindowFields
阶段使用。
语法
// $avg将一个指定表达式作为其操作数
{ $avg: <expression> }
// $avg将指定表达式的列表作为其操作数
{ $avg: [ <expression1>, <expression2> ... ] }
19.4 $bottom
$bottom
根据指定的排序顺序返回组内的底部元素。5.2
版本中的新增功能。可在 $group
和 $setWindowFields
阶段使用。
19.5 $bottomN
$bottomN
根据指定的排序顺序,返回群组内后 n
个字段的聚合。5.2
版本中的新增功能。可在 $group
和 $setWindowFields
阶段使用。
19.6 $count
$count
返回群组中的文档数。有别于 $count
管道阶段。5.0
版新增功能:可在 $group
和 $setWindowFields
阶段使用。
语法
{ $count: { } }
$count
不接受任何参数。$count
在功能上等同于在$group
阶段使用{ $sum : 1 }
。
19.7 $first
$first
返回群组中第一个文档的表达式结果。5.0
版中的更改:可在 $setWindowFields
阶段使用。
19.8 $firstN
$firstN
返回群组内前 n
个元素的聚合。仅当文档按定义的顺序排列时才有意义。与 $firstN
数组操作符不同。5.2
版新增功能:可在 $group
、表达式和 $setWindowFields
阶段使用。
19.9 $last
$last
返回群组中最后一份文档的表达式结果。5.0
版中的更改:可在 $setWindowFields
阶段使用。
19.10 $lastN
$lastN
返回群组内后 n
个元素的聚合。仅当文档按定义的顺序排列时才有意义。与 $lastN
数组操作符不同。5.2
版新增功能:可在 $group
、表达式和 $setWindowFields
阶段使用。
19.11 $max
$max
返回每个群组的最大表达式值。5.0
版中的更改:可在 $setWindowFields
阶段使用。
语法
{ $max: <expression> }
19.12 $maxN
$maxN
返回群组中 n
个最大值元素的聚合。与 $maxN
数组操作符不同。5.2
版本中的新增功能。在 $group
、 $setWindowFields
中可用,也可作为表达式使用。
19.13 $median
$median
返回中位数(第 50
百分位数)的近似标量值。7.0
版本中的新增功能。此操作符可在以下阶段用作累加器: $group
、$setWindowFields
它也可用作聚合表达式。
19.14 $mergeObjects
$mergeObjects
返回通过组合每个组的输入文档创建的文档。
19.15 $min
$min
返回每个群组的最小表达式值。5.0
版中的更改:可在 $setWindowFields
阶段使用。
语法
{ $min: <expression> }
19.16 $minN
$minN
返回组中 n
个最小值元素的聚合。与 $minN
数组操作符不同。5.2
版本中的新增功能。在 $group
、 $setWindowFields
中可用,也可作为表达式使用。
19.17 $percentile
$percentile
返回与指定的各百分位数一一对应的标量值数组。7.0
版本中的新增功能。 此操作符可在以下阶段用作累加器:$group
、$setWindowFields
它也可用作聚合表达式。
19.18 $push
$push
返回每组中文档的大量表达式值。5.0
版中的更改:可在 $setWindowFields
阶段使用。
19.19 $stdDevPop
$stdDevPop
返回输入值的总体标准偏差。5.0
版中的更改:可在 $setWindowFields
阶段使用。
19.20 $stdDevSamp
$stdDevSamp
返回输入值的样本标准偏差。5.0
版中的更改:可在 $setWindowFields
阶段使用。
19.21 $sum
$sum
返回数值的总和。忽略非数字值。5.0
版中的更改:可在 $setWindowFields
阶段使用。
语法
// 用作累加器
{ $sum: <expression> }
// 不用作累加器
{ $sum: [ <expression1>, <expression2> ... ] }
用法
{ $sum: 1 }
统计分组文档数量
19.22 $top
$top
根据指定的排序顺序返回群组内第一个元素。 5.2
版本中的新增功能。可在 $group
和 $setWindowFields
阶段使用。
19.23 $topN
$topN
根据指定的排序顺序,返回群组内前 n
个字段的聚合。5.2
版本中的新增功能。 可在 $group
和 $setWindowFields
阶段使用。
二十、变量表达式操作符
20.1 $let
$let
定义要在子表达式范围内使用的变量,并返回这些子表达式的结果。接受已命名的参数。
接受任意数量的参数表达式。
二十一、窗口运算符
21.1 $addToSet
$addToSet
返回对每份文档应用表达式所产生的所有唯一值的数组。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.2 $avg
$avg
返回指定表达式的平均值。忽略非数字值。5.0
版中的更改:可在 $setWindowFields
阶段使用。
21.3 $bottom
$bottom
根据指定的排序顺序返回组内的底部元素。
5.2 版本中的新增功能。
可在 setWindowFields 阶段使用。
21.4 $bottomN
$bottomN
根据指定的排序顺序,返回群组内后 n 个字段的聚合。
5.2 版本中的新增功能。
可在 setWindowFields 阶段使用。
21.5 $count
$count
返回群组或窗口中的文档数。
有别于 $count 管道阶段。
版本 5.0 中的新增功能。
21.6 $covariancePop
$covariancePop
返回两个数值表达式的总体协方差。
版本 5.0 中的新增功能。
21.7 $covarianceSamp
$covarianceSamp
返回两个数值表达式的样本协方差。
版本 5.0 中的新增功能。
21.8 $denseRank
$denseRank
返回某文档在 $setWindowFields 阶段分区中相对于其他文档的位置(称为排名)。这些排名没有差异。并列可获得相同排名。
版本 5.0 中的新增功能。
21.9 $derivative
$derivative
返回指定窗口内的平均变化率。
版本 5.0 中的新增功能。
21.10 $documentNumber
$documentNumber
返回文档在 $setWindowFields 阶段分区中的位置(称为文档编号)并列会导致相邻文件编号不同。
版本 5.0 中的新增功能。
21.11 $expMovingAvg
$expMovingAvg
返回数值表达式的指数移动平均值。
版本 5.0 中的新增功能。
21.12 $first
$first
返回组或 窗口 中第一个文档的 表达式 结果。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.13 $integral
$integral
返回曲线下面积的近似值。
版本 5.0 中的新增功能。
21.14 $last
$last
返回组或 窗口 中最后一个文档的 表达式 结果。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.15 $linearFill
$linearFill
使用线性插值并根据相邻的字段值来填充窗口中的 null 和缺失字段。
可在 $setWindowFields 阶段使用。
5.3 版本中的新增功能。
21.16 $locf
$locf
最后一次的观察结果被延续了下来。将窗口中 null 和缺失字段的值设置为该字段的最后一个非 null 值。
可在 $setWindowFields 阶段使用。
5.2 版本中的新增功能。
21.17 $max
$max
返回对每份文档应用表达式后的最小值。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.18 $min
$min
返回对每份文档应用表达式后的最小值。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.19 $minN
$minN
返回组中 n 个最小值元素的聚合。与 $minN 数组操作符不同。
5.2 版本中的新增功能。
在setWindowFields中可用,也可作为表达式使用。
21.20 $push
$push
返回对每个文档应用表达式后所得值的数组。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.21 $rank
$rank
返回一个文档在 $setWindowFields 阶段分区中相对于其他文档的位置(称为排名)。
版本 5.0 中的新增功能。
21.22 $shift
$shift
返回在 $setWindowFields 阶段的分区中,应用于目标文档的表达式的值。目标文档通过与当前文档的相对位置进行指定。
版本 5.0 中的新增功能。
21.23 $stdDevPop
$stdDevPop
返回对每个文档应用数值表达式所得的总体标准差。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.24 $stdDevSamp
$stdDevSamp
返回对每个文档应用数值表达式所得的样本标准差。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.25 $sum
$sum
返回对每份文档应用数值表达式所得的总和。
5.0 版中的更改:可在 $setWindowFields 阶段使用。
21.26 $top
$top
根据指定的排序顺序返回群组内第一个元素。
5.2 版本中的新增功能。
可在 setWindowFields 阶段使用。
21.27 $topN
$topN
根据指定的排序顺序,返回群组内前 n 个字段的聚合。
5.2 版本中的新增功能。
可在 setWindowFields 阶段使用。