定义
db.aggregate()运行不需要底层collection的指定管理/诊断管道。有关collection数据的聚合,请参阅
db.collection.aggregate()。重要
mongosh 方法
This page documents a
mongoshmethod. This is not the documentation for database commands or language-specific drivers, such as Node.js.有关数据库命令,请参阅
aggregate命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
兼容性
此方法可用于以下环境中托管的部署:
- MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
The db.aggregate() method has the following syntax:
db.aggregate( [ <pipeline> ], { <options> } )
注意
db.aggregate() can accept the pipeline stages as separate arguments instead of as elements in an array. If you do not specify the pipeline as an array, you cannot specify the options parameter.
pipeline 参数是要执行的阶段的数组。管道必须从不需要根本的集合的兼容阶段开始,例如 $currentOp 或 $listLocalSessions。
options文档可包含以下字段:
字段 | 类型 | 说明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 布尔 | |||||||||||
| 布尔 | 可选。允许写入临时文件。当设立为 | ||||||||||
| 文档 | 可选。指定游标的初始批处理大小。 | ||||||||||
| non-negative integer | 可选。指定处理游标)。如果没有指定 maxTimeMS 的值,操作不会超时。值为 MongoDB 使用与 | ||||||||||
| 布尔 | 可选。仅当您指定 启用 | ||||||||||
| 文档 | 可选。指定读关注。
可能的读关注级别是:
有关读关注级别的更多信息,请参阅读关注级别。
| ||||||||||
| 文档 | 可选。 可选。指定用于操作的排序规则。 排序规则允许用户为字符串比较指定特定于语言的规则,例如字母大小写和重音符号规则。 排序规则选项的语法如下: 指定排序规则时, 如果未指定排序规则,但集合具有默认排序规则(请参阅 如果没有为收集或操作指定排序规则,MongoDB 将使用先前版本中使用的简单二进制比较来进行字符串比较。 您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果执行带排序的查找,则不能使用一种排序规则进行查找而另一种排序规则进行排序。 | ||||||||||
| 字符串或文档 | |||||||||||
| 字符串 | 可选。用户可以指定任意字符串来帮助通过数据库分析器、currentOp 和日志来跟踪操作。 | ||||||||||
| 文档 |
例子
管道 $currentOp
以下示例运行一个包含两个阶段的管道。 第一阶段运行$currentOp操作,第二阶段筛选该操作的结果。
use admin db.aggregate( [ { $currentOp : { allUsers: true, idleConnections: true } }, { $match : { shard: "shard01" } } ] )