聚合
定义
-
aggregate
-
使用 聚合管道 执行聚合操作。管道允许用户通过一系列基于阶段的操作来处理集合或其他来源的数据。
提示
在
mongosh
中,此命令也可通过db.aggregate()
和db.collection.aggregate()
助手方法或watch()
助手方法来运行。辅助方法对
mongosh
用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。
兼容性
此命令可用于以下环境中托管的部署:
-
MongoDB Atlas :用于云中 MongoDB 部署的完全托管服务
重要
此命令在 M 0 、 M 2和 M 5集群中提供有限支持。 有关更多信息,请参阅 不支持的命令。
-
MongoDB Enterprise :基于订阅、自我管理的 MongoDB 版本
-
MongoDB Community :源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
5.0 版本中的更改 。
该命令具有以下语法:
db.runCommand( { aggregate: "<collection>" || 1, pipeline: [ <stage>, <...> ], explain: <boolean>, allowDiskUse: <boolean>, cursor: <document>, maxTimeMS: <int>, bypassDocumentValidation: <boolean>, readConcern: <document>, collation: <document>, hint: <string or document>, comment: <any>, writeConcern: <document>, let: <document> // Added in MongoDB 5.0 } )
命令字段
aggregate
命令将以下字段作为参数:
字段
|
类型
|
说明
|
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
aggregate
|
字符串
|
充当聚合管道的输入的集合或视图的名称。使用
1
执行与集合无关的命令。
|
||||||||||
pipeline
|
阵列
|
聚合管道阶段数组,作为聚合管道的一部分处理和转换文档流。
|
||||||||||
explain
|
布尔
|
可选。指定返回关于管道处理的信息。 不适用于 多文档事务 。 |
||||||||||
|
布尔
|
可选。
使用此选项可以覆盖特定查询的
从 MongoDB 6.0 开始,如果
有关详细信息,请参阅
|
||||||||||
cursor
|
文档
|
指定包含控制游标对象创建选项的文档。
MongoDB 删除了对 不带
|
||||||||||
maxTimeMS
|
non-negative integer
|
可选。
指定时间限制(以毫秒为单位)。如果您未指定
MongoDB 使用与
|
||||||||||
bypassDocumentValidation
|
布尔
|
|||||||||||
readConcern
|
文档
|
可选。指定 读关注 。
可能的读关注级别是:
有关读关注级别的更多信息,请参阅 读关注级别 。
|
||||||||||
collation
|
文档
|
可选。 指定用于操作的 排序规则 。 排序规则 允许用户为字符串比较指定特定于语言的规则,例如字母大小写和重音符号规则。 排序规则选项的语法如下:
指定排序规则时,
如果未指定排序规则,但集合具有默认排序规则(请参阅
如果没有为收集或操作指定排序规则,MongoDB 将使用先前版本中使用的简单二进制比较来进行字符串比较。 您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果执行带排序的查找,则不能使用一种排序规则进行查找而另一种排序规则进行排序。 |
||||||||||
hint
|
字符串或文档
|
|
||||||||||
comment
|
any
|
可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:
注释可以是任何有效的 BSON 类型 (字符串、整型、对象、数组等)。
在
|
||||||||||
writeConcern
|
文档
|
|||||||||||
let
|
文档
|
可选。 指定包含变量列表的文档。这样可以将变量与查询文本分开,从而提高命令的可读性。 文档语法为:
变量设置为表达式返回的值,并且之后不能再进行更改。
要访问命令中的变量值,请使用双美元符号前缀 (
要使用变量筛选管道
有关使用
版本 5.0 中的新增功能 。 |
MongoDB 删除了对 不带
aggregate
选项的
cursor
命令的使用,该命令包含
explain
选项的情况除外。除非包含
explain
选项,否则必须指定游标选项。
-
要指示具有默认批次大小的游标,请指定
cursor: