# 聚合管道操作符

> **注意：**
>
> 有关特定运算符的详细信息，包括语法和示例，请单击特定运算符以转到其参考页。

## 表达式运算符

在这个部分

* [算术表达式运算符](#arithmetic-expression-operators)
* [列表表达式运算符](#array-expression-operators)
* [布尔表达式运算符](#boolean-expression-operators)
* [比较表达式运算符](#comparison-expression-operators)
* [条件表达式运算符](#conditional-expression-operators)
* [日期表达式运算符](#date-expression-operators)
* [文字表达式运算符](#literal-expression-operator)
* [对象表达式运算符](#object-expression-operators)
* [集合表达式运算符](#set-expression-operators)
* [字符串表达式运算符](#string-expression-operators)
* [文本表达式运算符](#text-expression-operator)
* [三角表达式运算符](#trigonometry-expression-operators)
* [类型表达式运算符](#type-expression-operators)
* [累加器($group)](#accumulators-group)
* [累加器(处于其他阶段)](#accumulators-in-other-stages)
* [变量表达式运算符](#variable-expression-operators)

这些表达式运算符可用于构造[表达式](https://docs.mongoing.com/can-kao/yun-suan-fu/pages/-MGP53xhxsiuj_jgxpIH#表达式)以在[聚合管道阶段](/can-kao/yun-suan-fu/aggregation-pipeline-stages.md)中使用。

运算符表达式类似于带有参数的函数。通常，这些表达式采用参数数组并具有以下形式：

```
{ <operator>: [ <argument1>, <argument2> ... ] }
```

如果 operator 接受单个参数，可以省略指定参数列表的外部数组：

```
{ <operator>: <argument> }
```

为了避免在参数是文字数组的情况下解析歧义，必须将文字数组包装在[`$literal`](/can-kao/yun-suan-fu/aggregation-pipeline-operators/literal-aggregation.md)表达式中，或者保留指定参数列表的外部数组。

### 算术表达式运算符

算术表达式对 numbers 执行数学运算。一些算术表达式也可以支持 date 算术。

| 名称                                                                               | 描述                                                                                                                                                                          |
| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [$abs](/can-kao/yun-suan-fu/aggregation-pipeline-operators/abs-aggregation.md)   | 返回数字的绝对 value。                                                                                                                                                              |
| [$add](/can-kao/yun-suan-fu/aggregation-pipeline-operators/add-aggregation.md)   | 添加 numbers 以 return 总和，或添加 numbers 和 date 以 return 新的 date。如果添加 numbers 和 date，则将 numbers 视为毫秒。接受任意数量的参数表达式，但最多只能有一个表达式解析为 date。                                            |
| [$ceil](/can-kao/yun-suan-fu/aggregation-pipeline-operators/ceil-aggregation.md) | 返回大于或等于指定数字的最小 integer。                                                                                                                                                     |
| [$divide](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                | 返回将第一个数除以第二个数的结果。接受两个参数表达式。                                                                                                                                                 |
| [$exp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                   | 将 e 提高到指定的指数。                                                                                                                                                               |
| [$floor](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                 | 返回小于或等于指定数字的最大 integer。                                                                                                                                                     |
| [$ln](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                    | 计算数字的自然 log。                                                                                                                                                                |
| [$log](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                   | 计算指定基数中的数字的 log。                                                                                                                                                            |
| [$log10](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                 | 计算数字的 log 基数 10。                                                                                                                                                            |
| [$mod](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                   | 返回第一个数字的余数除以第二个数字。接受两个参数表达式。                                                                                                                                                |
| [$multiply](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 将 numbers 乘以\_return 产品。接受任意数量的参数表达式。                                                                                                                                       |
| [$pow](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                   | 将数字提高到指定的指数。                                                                                                                                                                |
| [$round](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                 | 将数字四舍五入为整数\_或\_指定的小数位。                                                                                                                                                      |
| [$sqrt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                  | 计算平方根。                                                                                                                                                                      |
| [$subtract](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回从第一个中减去第二个 value 的结果。如果这两个值是 numbers，返回差异。如果这两个值是日期，则返回差异(以毫秒为单位)。如果这两个值是 date 和一个以毫秒为单位的数字，\_return 结果 date。接受两个参数表达式。如果这两个值是 date 和数字，请首先指定 date 参数，因为从数字中减去 date 没有意义。 |
| [$trunc](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)                 | 截断其整数的数字。                                                                                                                                                                   |

### 列表表达式运算符

| 名称                                                                       | 描述                                            |
| ------------------------------------------------------------------------ | --------------------------------------------- |
| [$arrayElemAt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 返回指定的数组索引处的元素。                                |
| [$arrayToObject](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将键值对的数组转换为文档。                                 |
| [$concatArrays](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 连接数组以返回连接的数组。                                 |
| [$filter](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 选择数组的子集以返回仅包含与过滤条件匹配的元素的数组。                   |
| [$in](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回一个布尔值，指示指定的值是否在数组中。                         |
| [$indexOfArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 在数组中搜索指定值的出现，并返回第一个出现的数组索引。如果未找到子字符串，则返回`-1`。 |
| [$isArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 确定操作数是否为数组。返回一个布尔值。                           |
| [$map](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 对数组的每个元素应用子表达式，并按顺序返回结果值的数组。接受命名参数。           |
| [$objectToArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将文档转换为代表键值对的文档数组。                             |
| [$range](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 根据用户定义的输入输出包含整数序列的数组。                         |
| [$reduce](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 将表达式应用于数组中的每个元素，并将它们组合为单个值。                   |
| [$reverseArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 返回具有相反顺序元素的数组。                                |
| [$size](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 返回数组中元素的数量。接受单个表达式作为参数。                       |
| [$slice](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回数组的子集。                                      |
| [$zip](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 合并两个数组。                                       |

### 布尔表达式运算符

布尔表达式将其参数表达式计算为布尔值，并返回布尔值作为结果。

除了`false`布尔值，布尔表达式为`false`如下：`null`，`0`，和`undefined` 的值。布尔表达式将所有其他值评估为`true`，包括非零数字值和数组。

| 名称                                                             | 描述                                        |
| -------------------------------------------------------------- | ----------------------------------------- |
| [$and](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 仅当其所有表达式求值为`true`时才返回`true`。接受任意数量的参数表达式。 |
| [$not](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 返回与其参数表达式相反的 boolean value。接受单个参数表达式。     |
| [$or](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 当任何表达式求值为`true`时返回`true`。接受任意数量的参数表达式。    |

### 比较表达式运算符

比较表达式返回一个布尔值，但[$cmp](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-cmp.html#exp._S_cmp)返回一个数字。

比较表达式采用两个参数表达式并比较 value 和 type，使用[指定的 BSON 比较顺序](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-bson-type-comparison-order.html#bson-types-comparison-order)表示不同类型的值。

| 名称                                                             | 描述                                                                 |
| -------------------------------------------------------------- | ------------------------------------------------------------------ |
| [$cmp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 如果两个值相等则返回`0`，如果第一个 value 大于第二个值则返回`1`，如果第一个 value 小于第二个值，则返回`-1`。 |
| [$eq](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 如果值相等，则返回`true`。                                                   |
| [$gt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 如果第一个 value 大于第二个，则返回`true`。                                       |
| [$gte](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 如果第一个 value 大于或等于第二个，则返回`true`。                                    |
| [$lt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 如果第一个 value 小于第二个，则返回`true`。                                       |
| [$lte](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 如果第一个 value 小于或等于第二个值，则返回`true`。                                   |
| [$ne](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 如果值不相等，则返回`true`。                                                  |

### 条件表达式运算符

| 名称                                                                | 描述                                                                                           |
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [$cond](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 一个三元运算符，它计算一个表达式，并根据结果返回另外两个表达式之一的值。接受有序列表中的三个表达式或三个命名参数。                                    |
| [$ifNull](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 如果第一个表达式导致结果为null ，则返回第一个表达式的非空结果或第二个表达式的结果。空结果包含未定义值或缺少字段的实例。接受两个表达式作为参数。第二个表达式的结果可以为 null。 |
| [$switch](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 计算一系列案例表达式。当它找到一个计算结果为`true`的表达式时，`$switch`执行一个指定的表达式并退出控制流。                                 |

### 日期表达式运算符

以下运算符返回日期对象或日期对象的组成部分：

| 名称                                                                        | 描述                                                                |
| ------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [$dateFromParts](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 给出日期的组成部分，构造一个 BSON Date对象。                                       |
| [$dateFromString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将 date/time 字符串转换为 date 对象。                                       |
| [$dateToParts](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 返回包含 date 组成部分的文档。                                                |
| [$dateToString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 将 date 作为格式化的 string 返回。                                          |
| [$dayOfMonth](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将 date 的月中某天返回为 1 到 31 之间的数字。                                     |
| [$dayOfWeek](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 将 date 的星期几返回为 1(星期日)和 7(星期六)之间的数字。                               |
| [$dayOfYear](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 将 date 的年中日期作为 1 到 366(闰年)之间的数字返回。                                |
| [$hour](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 将 date 的小时数作为 0 到 23 之间的数字返回。                                     |
| [$isoDayOfWeek](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 返回 ISO 8601 格式的工作日编号，范围从`1`(星期一)到`7`(星期日)。                        |
| [$isoWeek](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 返回 ISO 8601 格式的周数，范围从`1`到`53`。 星期数从`1`开始，周(星期一到星期日)包含年份的第一个星期四。   |
| [$isoWeekYear](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 以 ISO 8601 格式返回年份编号。年份从第 1 周的星期一(ISO 8601)开始，结束于上周的星期日(ISO 8601)。 |
| [$millisecond](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 返回 date 的毫秒数，作为 0 到 999 之间的数字。                                    |
| [$minute](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 将 date 的分钟作为 0 到 59 之间的数字返回。                                      |
| [$month](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 将 date 的月份返回为 1(1 月)和 12(12 月)之间的数字。                              |
| [$second](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回 date 的秒数，作为 0 到 60 之间的数字(闰秒)。                                  |
| [$toDate](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 将值转换为日期。 *版本4.0中的新功能。*                                            |
| [$week](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 返回 date 的周数，作为 0(在一年的第一个星期日之前的部分周)和 53(闰年)之间的数字。                  |
| [$year](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 将 date 的年份作为数字返回(例：2014)。                                         |

以下算术运算符可以使用 date 操作数：

| 名称                                                                  | 描述                                                                                                                                        |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| [$add](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 添加 numbers 和 date 以返回新的 date。如果添加 numbers 和 date，则将 numbers 视为毫秒。接受任意数量的参数表达式，但最多只能有一个表达式解析为 date。                                        |
| [$subtract](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 返回从第一个中减去第二个值的结果。如果这两个值是日期，则返回差异(以毫秒为单位)。如果这两个值是 date 和一个以毫秒为单位的数字，返回结果 date。接受两个参数表达式。如果这两个值是 date 和数字，请首先指定 date 参数，因为从数字中减去 date 没有意义。 |

### 文字表达式运算符

| 名称                                                                 | 描述                                                                                                                                  |
| ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| [$literal](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 无需解析即可返回 value。用于聚合管道可以将其解释为表达式的值。例如，对以$开头的字符串使用[\]$literal](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)表达式，以避免解析为字段路径。 |

### 对象表达式运算符

| 名称                                                                       | 描述                                                 |
| ------------------------------------------------------------------------ | -------------------------------------------------- |
| [$mergeObjects](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 将多个文档合并为一个文档。 version 3.6 中的新内容。                   |
| [$objectToArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将文档转换为表示 key-value 对的文档的 array。 version 3.6 中的新内容。 |

### 集合表达式运算符

Set 表达式对数组执行 set 操作，将数组视为 sets。 Set 表达式忽略每个输入数组中的重复条目和元素的顺序。

如果 set 操作返回一个 set，则该操作会过滤掉结果中的重复项，以输出仅包含唯一条目的 array。输出 array 中元素的顺序未指定。

如果集合包含嵌套的 array 元素，则 set 表达式不会下降到嵌套的 array 中，而是在顶层level 处计算 array。

| 名称                                                                         | 描述                                                               |
| -------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| [$allElementsTrue](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 如果没有集合的元素计算为`false`，则返回`true`，否则返回`false`。接受单个参数表达式。             |
| [$anyElementTrue](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 如果集合中的任何元素求值为`true`，则返回`true`;否则，返回`false`。接受单个参数表达式。            |
| [$setDifference](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 返回一个集合，其中的元素出现在第一个集合中但不出现在第二个集合中; 即：相对于第一组执行第二组的相对补充。接受两个参数表达式。  |
| [$setEquals](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 如果输入 sets 具有相同的不同元素，则返回`true`。接受两个或多个参数表达式。                      |
| [$setIntersection](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 返回一个包含所有输入 sets 中出现的元素的集合。接受任意数量的参数表达式。                          |
| [$setIsSubset](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 如果第一组的所有元素出现在第二组中，则返回`true`，包括第一组的等于第二组的时间; 即：不是严格的子集。接受两个参数表达式。 |
| [$setUnion](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 返回一个包含任何输入 sets 中出现的元素的集合。                                       |

### 字符串表达式运算符

字符串表达式（除外 [`$concat`](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-concat.html#exp._S_concat)）仅对ASCII字符字符串具有明确定义的行为。

[`$concat`](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-concat.html#exp._S_concat) 行为是明确定义的，与所使用的字符无关。

| 名称                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [$concat](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 连接任意数量的 strings。                                                                                                                                                                                                                                                                                                                                                                                                        |
| [$dateFromString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将 date/time string 转换为 date object。                                                                                                                                                                                                                                                                                                                                                                                     |
| [$dateToString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 将 date 作为格式化的 string 返回。                                                                                                                                                                                                                                                                                                                                                                                                |
| [$indexOfBytes](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 搜索 string 以查找子字符串的出现并返回第一次出现的 UTF-8 字节索引。如果未找到子字符串，则返回`-1`。                                                                                                                                                                                                                                                                                                                                                             |
| [$indexOfCP](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 搜索 string 以查找子字符串的出现并返回第一次出现的 UTF-8 code 点索引。如果找不到子字符串，则返回`-1`                                                                                                                                                                                                                                                                                                                                                          |
| [$ltrim](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 从字符串开头删除空格或指定的字符。 *版本4.0中的新功能。*                                                                                                                                                                                                                                                                                                                                                                                         |
| [$regexFind](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 将正则表达式（regex）应用于字符串，并返回\_第一个\_匹配的子字符串的信息。 *4.2版中的新功能。*                                                                                                                                                                                                                                                                                                                                                                  |
| [$regexFindAll](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 将正则表达式（regex）应用于字符串，并返回所有匹配的子字符串的信息。 *4.2版中的新功能。*                                                                                                                                                                                                                                                                                                                                                                       |
| [$regexMatch](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将正则表达式（regex）应用于字符串，并返回一个布尔值，该布尔值指示是否找到匹配项。 *4.2版中的新功能。*                                                                                                                                                                                                                                                                                                                                                                |
| [$rtrim](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 从字符串末尾删除空格或指定的字符。 *版本4.0中的新功能。*                                                                                                                                                                                                                                                                                                                                                                                         |
| [$split](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 根据分隔符将 string 拆分为子字符串。返回子字符串的 array。如果在 string 中找不到分隔符，则返回包含原始 string 的 array。                                                                                                                                                                                                                                                                                                                                          |
| [$strLenBytes](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 返回 string 中 UTF-8 编码字节的数量。                                                                                                                                                                                                                                                                                                                                                                                              |
| [$strLenCP](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 返回 string 中 UTF-8 [code 点](http://www.unicode.org/glossary/#code_point)的数量。                                                                                                                                                                                                                                                                                                                                             |
| [$strcasecmp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 执行 case-insensitive string 比较并返回：如果两个 strings 相等则返回`0`，如果第一个 string 大于第二个，则返回`1`，如果第一个 string 小于第二个，则返回`-1`。                                                                                                                                                                                                                                                                                                            |
| [$substr](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 已过时。使用[$substrBytes](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-substrBytes.html#exp._S_substrBytes)或[$substrCP](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-substrCP.html#exp._S_substrCP)。 |
| [$substrBytes](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 返回 string 的子字符串。从 string 中指定的 UTF-8 字节索引(zero-based)处的字符开始，并继续指定的字节数。                                                                                                                                                                                                                                                                                                                                                   |
| [$substrCP](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 返回 string 的子字符串。从 string 中指定的 UTF-8 [code point(CP)](http://www.unicode.org/glossary/#code_point)索引(zero-based)处的字符开始，并继续指定的 code 点数。                                                                                                                                                                                                                                                                                   |
| [$toLower](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 将 string 转换为小写。接受单个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                               |
| [$toString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 将值转换为字符串。 *版本4.0中的新功能。*                                                                                                                                                                                                                                                                                                                                                                                                 |
| [$trim](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 从字符串的开头和结尾删除空格或指定的字符。 *版本4.0中的新功能。*                                                                                                                                                                                                                                                                                                                                                                                     |
| [$toUpper](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 将 string 转换为大写。接受单个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                               |

### 文本表达式运算符

| 名称                                                              | 描述         |
| --------------------------------------------------------------- | ---------- |
| [$meta](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 访问文本搜索元数据。 |

### 三角表达式运算符

三角表达式对数字执行三角运算。表示角度的值始终以弧度为单位输入或输出。使用 `$degreesToRadians`和`$radiansToDegrees`在度和弧度测量之间转换。

| 名称                                                                          | 描述                                                   |
| --------------------------------------------------------------------------- | ---------------------------------------------------- |
| [$sin](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回以弧度为单位的值的正弦值。                                      |
| [$cos](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回以弧度为单位的值的余弦值。                                      |
| [$tan](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回以弧度为单位的值的切线。                                       |
| [$asin](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回弧度值的反正弦（弧正弦）。                                      |
| [$acos](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回弧度值的反余弦（弧余弦）。                                      |
| [$atan](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回弧度值的反正切（弧切）。                                       |
| [$atan2](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度表示的`y / x`的反正切（弧切线），其中`y`和`x`是分别传递给表达式的第一个和第二个值。 |
| [$asinh](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度值的反双曲正弦（双曲反正弦）。                                  |
| [$acosh](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度值的反双曲余弦（双曲反余弦）。                                  |
| [$atanh](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度值的反双曲正切（双曲反正切）。                                  |
| [$degreesToRadians](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将值从度转换为弧度。                                           |
| [$radiansToDegrees](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将值从弧度转换为度。                                           |

### 类型表达式运算符

| 名称                                                                    | 描述                             |
| --------------------------------------------------------------------- | ------------------------------ |
| [$convert](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 将值转换为指定的类型。 *版本4.0中的新功能。*      |
| [$toBool](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将值转换为布尔值。 *版本4.0中的新功能。*        |
| [$toDate](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将值转换为日期。 *版本4.0中的新功能。*         |
| [$toDecimal](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 将值转换为Decimal128。 *版本4.0中的新功能。* |
| [$toDouble](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 将值转换为双精度。 *版本4.0中的新功能。*        |
| [$toInt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 将值转换为整数。 *版本4.0中的新功能。*         |
| [$toLong](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将值转换为long。 *版本4.0中的新功能。*       |
| [$toObjectId](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将值转换为ObjectId。 *版本4.0中的新功能。*   |
| [$toString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 将值转换为字符串。 *版本4.0中的新功能。*        |
| [$type](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 返回该字段的BSON数据类型。                |

### 累加器($group)

累加器是可以在[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段使用的运算符，它们在文档通过管道时保持其状态(例如： 总计，最大值，最小值和相关数据)。

当在[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段用作累加器时，这些运算符将单个表达式作为输入，为每个输入文档计算一次表达式，并为共享相同 group key 的 group 文档保持其阶段。

| 名称                                                                      | 描述                                       |
| ----------------------------------------------------------------------- | ---------------------------------------- |
| [$addToSet](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 返回每个 group 的唯一表达式值的 array。 数组元素的顺序是未定义的。 |
| [$avg](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 返回数值的平均值。忽略非数字值。                         |
| [$first](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 从每个 group 的第一个文档返回一个值。仅当文档按定义的顺序定义顺序。    |
| [$last](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 从每个 group 的最后一个文档返回一个值。仅当文档按定义的顺序定义顺序。   |
| [$max](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 返回每个 group 的最高表达式值。                      |
| [$mergeObjects](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 返回通过组合每个 group 的输入文档创建的文档。               |
| [$min](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 返回每个 group 的最低表达式值。                      |
| [$push](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回每个 group 的表达式值的 array。                 |
| [$stdDevPop](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 返回输入值的总体标准偏差。                            |
| [$stdDevSamp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 返回输入值的 sample 标准偏差。                      |
| [$sum](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 返回数值的总和。忽略非数字值。                          |

### 累加器(处于其他阶段)

一些可用作[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段累加器的运算符也可用于[$project](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段，但不能用作累加器。在[$project](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段使用时，这些 operator 不会维护它们的 state，并且可以将单个参数或多个 arguments 作为输入。

*更改了 version 3.2.*

以下累加器 operators 也可用于[$project](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)、[$addFields](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)和[$set](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段。

| 名称                                                                    | 描述                             |
| --------------------------------------------------------------------- | ------------------------------ |
| [$avg](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 返回每个文档的指定表达式或表达式列表的平均值。忽略非数字值。 |
| [$max](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 返回每个文档的指定表达式或表达式列表的最大值。        |
| [$min](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 返回每个文档的指定表达式或表达式列表的最小值。        |
| [$stdDevPop](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 返回输入值的总体标准偏差。                  |
| [$stdDevSamp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 返回输入值的样本标准偏差。                  |
| [$sum](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 返回数值的总和。忽略非数字值。                |

### 变量表达式运算符

| 名称                                                             | 描述                                               |
| -------------------------------------------------------------- | ------------------------------------------------ |
| [$let](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 定义在子表达式范围内使用的变量，并返回子表达式的结果。接受命名参数。 接受任意数量的参数表达式。 |

## 表达式运算符的字母顺序列表

| 名称                                                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [$abs](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回数字的绝对值。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$acos](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回弧度值的反余弦（弧余弦）。                                                                                                                                                                                                                                                                                                                                                                                                                        |
| [$acosh](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度值的反双曲余弦（双曲反余弦）。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [$add](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 添加数字以返回总和，或者添加数字和日期以返回新日期。如果添加数字和日期，则将数字视为毫秒。接受任意数量的参数表达式，但最多只能一个表达式解析为日期。                                                                                                                                                                                                                                                                                                                                                             |
| [$addToSet](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回每个 group 的唯一表达式值的 array。 数组元素的顺序是未定义的。 仅适用于[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段                                                                                                                                                                                                                                                                                                                        |
| [$allElementsTrue](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 如果没有集合的元素计算为`false`，则返回`true`，否则返回`false`。接受单个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                   |
| [$and](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 仅当其所有表达式求值为`true`时才返回`true`。接受任意数量的参数表达式。                                                                                                                                                                                                                                                                                                                                                                                              |
| [$anyElementTrue](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 如果集合中的任何元素求值为`true`，则返回`true`;否则，返回`false`。接受单个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                  |
| [$arrayElemAt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 返回指定的 array 索引处的元素。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [$arrayToObject](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 将键值对的 array 转换为文档。                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [$asin](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回弧度值的反正弦（弧正弦）。                                                                                                                                                                                                                                                                                                                                                                                                                        |
| [$asinh](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度值的反双曲正弦（双曲反正弦）。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [$atan](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回弧度值的反正切（弧切）。                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [$atan2](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度表示的`y / x`的反正切（弧切线），其中`y`和`x`是分别传递给表达式的第一个和第二个值。                                                                                                                                                                                                                                                                                                                                                                                   |
| [$atanh](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回弧度值的反双曲正切（双曲反正切）。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [$avg](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回数值的平均值。忽略非数字值。 在 version 3.2 中更改：在[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)和[$project](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段均可用。                                                                                                                                                                                                                                                          |
| [$ceil](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回大于或等于指定数字的最小整数。                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [$cmp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 如果两个值相等则返回`0`，如果第一个 value 大于第二个值则返回`1`，如果第一个 value 小于第二个值，则返回`-1`。                                                                                                                                                                                                                                                                                                                                                                     |
| [$concat](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 连接任意数量的字符串。                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [$concatArrays](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 连接数组以返回连接的数组。                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [$cond](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 一个三元运算符，它计算一个表达式，并根据结果返回另外两个表达式之一的值。接受有序列表中的三个表达式或三个命名参数。                                                                                                                                                                                                                                                                                                                                                                              |
| [$convert](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 将值转换为指定的类型。                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [$cos](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回以弧度为单位的值的余弦值。                                                                                                                                                                                                                                                                                                                                                                                                                        |
| [$dateFromParts](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 给出 date 的组成部分，构造一个 BSON Date对象。                                                                                                                                                                                                                                                                                                                                                                                                        |
| [$dateToParts](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 返回包含 date 组成部分的文档。                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [$dateFromString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)   | 返回 date/time 作为 date 对象。                                                                                                                                                                                                                                                                                                                                                                                                               |
| [$dateToString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将 date 作为格式化的 string 返回。                                                                                                                                                                                                                                                                                                                                                                                                               |
| [$dayOfMonth](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 将 date 的月中某天返回为 1 到 31 之间的数字。                                                                                                                                                                                                                                                                                                                                                                                                          |
| [$dayOfWeek](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 将 date 的星期几返回为 1(星期日)和 7(星期六)之间的数字。                                                                                                                                                                                                                                                                                                                                                                                                    |
| [$dayOfYear](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 将 date 的年中日期作为 1 到 366(闰年)之间的数字返回。                                                                                                                                                                                                                                                                                                                                                                                                     |
| [$degreesToRadians](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md) | 将值从度转换为弧度。                                                                                                                                                                                                                                                                                                                                                                                                                             |
| [$divide](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 返回将第一个数除以第二个数的结果。接受两个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                            |
| [$eq](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)               | 如果值相等，则返回`true`。                                                                                                                                                                                                                                                                                                                                                                                                                       |
| [$exp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 将 e 提高到指定的指数。                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [$filter](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 选择 array 的子集以返回 array 仅包含 match 过滤条件的元素。                                                                                                                                                                                                                                                                                                                                                                                               |
| [$first](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 从每个 group 的第一个文档返回一个 value。仅当文档位于已定义的 order 中时才定义 Order。 仅适用于[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段。                                                                                                                                                                                                                                                                                                       |
| [$floor](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回小于或等于指定数字的最大 integer。                                                                                                                                                                                                                                                                                                                                                                                                                |
| [$gt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)               | 如果第一个 value 大于第二个，则返回`true`。                                                                                                                                                                                                                                                                                                                                                                                                           |
| [$gte](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 如果第一个 value 大于或等于第二个，则返回`true`。                                                                                                                                                                                                                                                                                                                                                                                                        |
| [$hour](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 将 date 的小时数作为 0 到 23 之间的数字返回。                                                                                                                                                                                                                                                                                                                                                                                                          |
| [$ifNull](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 如果第一个表达式导致 null 结果，则返回第一个表达式的 non-null 结果或第二个表达式的结果。空结果包含未定义值或缺少字段的实例。接受两个表达式作为参数。第二个表达式的结果可以为 null。                                                                                                                                                                                                                                                                                                                                   |
| [$in](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)               | 返回一个 boolean，指示指定的 value 是否在 array 中。                                                                                                                                                                                                                                                                                                                                                                                                  |
| [$indexOfArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 搜索 array 以查找指定 value 的出现并返回第一次出现的 array 索引。如果未找到子字符串，则返回`-1`。                                                                                                                                                                                                                                                                                                                                                                          |
| [$indexOfBytes](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 搜索 string 以查找子字符串的出现并返回第一次出现的 UTF-8 字节索引。如果未找到子字符串，则返回`-1`。                                                                                                                                                                                                                                                                                                                                                                            |
| [$indexOfCP](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 搜索 string 以查找子字符串的出现并返回第一次出现的 UTF-8 code 点索引。如果未找到子字符串，则返回`-1`。                                                                                                                                                                                                                                                                                                                                                                        |
| [$isArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 确定操作数是否为 array。返回 boolean。                                                                                                                                                                                                                                                                                                                                                                                                             |
| [$isoDayOfWeek](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 返回 ISO 8601 格式的工作日编号，范围从`1`(星期一)到`7`(星期日)。                                                                                                                                                                                                                                                                                                                                                                                             |
| [$isoWeek](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 返回 ISO 8601 格式的周数，范围从`1`到`53`。 Week numbers 从`1`开始，周(星期一到星期日)包含年份的第一个星期四。                                                                                                                                                                                                                                                                                                                                                              |
| [$isoWeekYear](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 以 ISO 8601 格式返回年份编号。年份从第 1 周的星期一(ISO 8601)开始，结束于上周的星期日(ISO 8601)。                                                                                                                                                                                                                                                                                                                                                                      |
| [$last](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 从每个 group 的最后一个文档返回一个 value。仅当文档位于已定义的 order 中时才定义 Order。 仅适用于[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段。                                                                                                                                                                                                                                                                                                      |
| [$let](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 定义在子表达式范围内使用的变量，并返回子表达式的结果。接受命名参数。 接受任意数量的参数表达式。                                                                                                                                                                                                                                                                                                                                                                                       |
| [$literal](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 无需解析即可返回 value。用于聚合管道可以将其解释为表达式的值。例如，对以$开头的字符串使用[$literal](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)表达式，以避免解析为字段路径。                                                                                                                                                                                                                                                                                                      |
| [$ln](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)               | 计算数字的自然对数。                                                                                                                                                                                                                                                                                                                                                                                                                             |
| [$log](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 计算指定基数中的数字的对数。                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [$log10](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 计算数字的以10为底的对数。                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [$lt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)               | 如果第一个 value 小于第二个，则返回`true`。                                                                                                                                                                                                                                                                                                                                                                                                           |
| [$lte](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 如果第一个 value 小于或等于第二个值，则返回`true`。                                                                                                                                                                                                                                                                                                                                                                                                       |
| [$ltrim](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 从字符串开头删除空格或指定的字符。                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [$map](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 将子表达式应用于 array 的每个元素，并按顺序返回结果值的 array。接受命名参数。                                                                                                                                                                                                                                                                                                                                                                                          |
| [$max](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回每个 group 的最高表达式 value。 在 version 3.2 中更改：在[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)和[$project](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段均可用。                                                                                                                                                                                                                                                  |
| [$mergeObjects](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将多个文档合并为一个文档。                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [$meta](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 访问文本搜索元数据。                                                                                                                                                                                                                                                                                                                                                                                                                             |
| [$min](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回每个 group 的最低表达式 value。 在 version 3.2 中更改：在[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)和[$project](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段均可用。                                                                                                                                                                                                                                                  |
| [$millisecond](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 返回 date 的毫秒数，作为 0 到 999 之间的数字。                                                                                                                                                                                                                                                                                                                                                                                                         |
| [$minute](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 将 date 的分钟作为 0 到 59 之间的数字返回。                                                                                                                                                                                                                                                                                                                                                                                                           |
| [$mod](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回第一个数字的余数除以第二个数字。接受两个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                           |
| [$month](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 将 date 的月份返回为 1(1 月)和 12(12 月)之间的数字。                                                                                                                                                                                                                                                                                                                                                                                                   |
| [$multiply](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 乘以数字可返回乘积。接受任意数量的参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                                |
| [$ne](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)               | 如果值不相等，则返回`true`。                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [$not](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回与其参数表达式相反的布尔值。接受单个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                             |
| [$objectToArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 将文档转换为表示键值对的文档的 array。                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [$or](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)               | 当任何表达式求值为`true`时返回`true`。接受任意数量的参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                 |
| [$pow](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 将数字提高到指定的指数。                                                                                                                                                                                                                                                                                                                                                                                                                           |
| [$push](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回每个 group 的表达式值的 array。 仅适用于[$group](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)阶段。                                                                                                                                                                                                                                                                                                                                       |
| [$range](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 根据用户定义输入输出包含整数序列的 array。                                                                                                                                                                                                                                                                                                                                                                                                               |
| [$reduce](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 将表达式应用于 array 中的每个元素，并将它们组合为单个 value。                                                                                                                                                                                                                                                                                                                                                                                                  |
| [$regexFind](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 将正则表达式（regex）应用于字符串，并返回\_第一个\_匹配的子字符串的信息。                                                                                                                                                                                                                                                                                                                                                                                              |
| [$regexFindAll](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 将正则表达式（regex）应用于字符串，并返回所有匹配的子字符串的信息。                                                                                                                                                                                                                                                                                                                                                                                                   |
| [$regexMatch](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 将正则表达式（regex）应用于字符串，并返回一个布尔值，该布尔值指示是否找到匹配项。                                                                                                                                                                                                                                                                                                                                                                                            |
| [$reverseArray](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)     | 返回具有相反顺序元素的 array。                                                                                                                                                                                                                                                                                                                                                                                                                     |
| [$round](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 将数字四舍五入为整数\_或\_指定的小数位。                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [$rtrim](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 从字符串末尾删除空格或指定的字符。                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [$second](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 返回 date 的秒数，作为 0 到 60 之间的数字(闰秒)。                                                                                                                                                                                                                                                                                                                                                                                                       |
| [$setDifference](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)    | 返回一个集合，其中的元素出现在第一个集合中但不出现在第二个集合中; 即：相对于第一组执行第二组的\[相对补充]\([http://en.wikipedia.org/wiki/Complement\_(set\_theory))。接受两个参数表达式。](http://en.wikipedia.org/wiki/Complement_%28set_theory%29%29。接受两个参数表达式。)                                                                                                                                                                                                                                  |
| [$setEquals](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 如果输入集合具有相同的不同元素，则返回`true`。接受两个或多个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                |
| [$setIntersection](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)  | 返回一个包含所有输入集合中出现的元素的集合。接受任意数量的参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                    |
| [$setIsSubset](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 如果第一组的所有元素出现在第二组中，则返回`true`，包括第一组的等于第二组的时间; 即：不是严格的子集。接受两个参数表达式。                                                                                                                                                                                                                                                                                                                                                                       |
| [$setUnion](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回一个包含任何输入集合中出现的元素的集合。                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [$size](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回 array 中的元素数。接受单个表达式作为参数。                                                                                                                                                                                                                                                                                                                                                                                                            |
| [$sin](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回以弧度为单位的值的正弦值。                                                                                                                                                                                                                                                                                                                                                                                                                        |
| [$slice](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 返回 array 的子集。                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [$split](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 根据分隔符将 string 拆分为子字符串。返回子字符串的 array。如果在 string 中找不到分隔符，则返回包含原始 string 的 array。                                                                                                                                                                                                                                                                                                                                                         |
| [$sqrt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 计算平方根。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [$stdDevPop](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 返回输入值的总体标准偏差。 在 version 3.2 中更改：在[$group](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-group.html#pipe._S_group)和[$project](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-project.html#pipe._S_project)阶段均可用。   |
| [$stdDevSamp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 返回输入值的样本标准偏差。 在 version 3.2 中更改：在[$group](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-group.html#pipe._S_group)和[$project](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-project.html#pipe._S_project)阶段均可用。   |
| [$strcasecmp](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 执行不区分大小写的字符串比较并返回：如果两个字符串相等则返回`0`，如果第一个字符串大于第二个，则返回`1`，如果第一个字符串小于第二个，则返回`-1`。                                                                                                                                                                                                                                                                                                                                                          |
| [$strLenBytes](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 返回 string 中 UTF-8 编码字节的数量。                                                                                                                                                                                                                                                                                                                                                                                                             |
| [$strLenCP](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回 string 中 UTF-8 [code 点](http://www.unicode.org/glossary/#code_point)的数量。                                                                                                                                                                                                                                                                                                                                                            |
| [$substr](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 已过时。使用[$substrBytes](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-substrBytes.html#exp._S_substrBytes)或[$substrCP](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-substrCP.html#exp._S_substrCP)。                |
| [$substrBytes](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)      | 返回 string 的子字符串。从 string 中指定的 UTF-8 字节索引(从零开始)处的字符开始，并继续指定的字节数。                                                                                                                                                                                                                                                                                                                                                                        |
| [$substrCP](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回 string 的子字符串。从 string 中指定的 UTF-8 [code point(CP)](http://www.unicode.org/glossary/#code_point)索引(从零开始)处的字符开始，并继续指定的 code 点数                                                                                                                                                                                                                                                                                                         |
| [$subtract](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 返回从第一个中减去第二个 value 的结果。如果这两个值是数字，返回差值。如果这两个值是日期，则返回差值(以毫秒为单位)。如果这两个值是 date 和一个以毫秒为单位的数字，则返回结果 date。接受两个参数表达式。如果这两个值是 date 和数字，请首先指定 date 参数，因为从数字中减去 date 没有意义。                                                                                                                                                                                                                                                                        |
| [$sum](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回数值的总和。忽略非数字值。 在 version 3.2 中更改：在[$group](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-group.html#pipe._S_group)和[$project](https://github.com/mongodb-china/MongoDB-CN-Manual/tree/8490376c81d56eff95abbaddc6ee414b1e1c9705/docs/Reference/Operators/reference-operator-aggregation-project.html#pipe._S_project)阶段均可用。 |
| [$switch](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 计算一系列案例表达。当它找到一个计算结果为`true`的表达式时，`$switch`执行一个指定的表达式并退出控制流。                                                                                                                                                                                                                                                                                                                                                                            |
| [$tan](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 返回以弧度为单位的值的切线。                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [$toBool](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 将值转换为布尔值。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$toDate](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 将值转换为日期。                                                                                                                                                                                                                                                                                                                                                                                                                               |
| [$toDecimal](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)        | 将值转换为Decimal128。                                                                                                                                                                                                                                                                                                                                                                                                                       |
| [$toDouble](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 将值转换为双精度。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$toInt](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 将值转换为整数。                                                                                                                                                                                                                                                                                                                                                                                                                               |
| [$toLong](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)           | 将值转换为long。                                                                                                                                                                                                                                                                                                                                                                                                                             |
| [$toObjectId](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)       | 将值转换为ObjectId。                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [$toString](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)         | 将值转换为字符串。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$toLower](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 将 string 转换为小写。接受单个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$toUpper](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)          | 将 string 转换为大写。接受单个参数表达式。                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$trim](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 从字符串的开头和结尾删除空格或指定的字符。                                                                                                                                                                                                                                                                                                                                                                                                                  |
| [$trunc](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)            | 截断其整数的数字。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$type](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回该字段的 BSON 数据类型。                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [$week](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 返回 date 的周数，作为 0(在一年的第一个星期日之前的部分周)和 53(闰年)之间的数字。                                                                                                                                                                                                                                                                                                                                                                                       |
| [$year](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)             | 将 date 的年份作为数字返回(例：2014)。                                                                                                                                                                                                                                                                                                                                                                                                              |
| [$zip](/can-kao/yun-suan-fu/aggregation-pipeline-operators.md)              | 将两个数组合并在一起。                                                                                                                                                                                                                                                                                                                                                                                                                            |

对于管道阶段，请参见[聚合管道阶段](/can-kao/yun-suan-fu/aggregation-pipeline-stages.md)。

译者：李冠飞

校对：


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mongoing.com/can-kao/yun-suan-fu/aggregation-pipeline-operators.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
