对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

db.aggregate()(mongosh方法)

db.aggregate()

运行不需要底层collection的指定管理/诊断管道。有关collection数据的聚合,请参阅db.collection.aggregate()

重要

mongosh 方法

This page documents a mongosh method. 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 对所有命令的支持的信息,请参阅不支持的命令

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文档可包含以下字段:

字段
类型
说明

explain

布尔

可选。指定该方法是否返回有关管道处理的信息。

有关示例,请参阅聚合管道操作的返回信息

重要: 此选项在多文档事务中不可用。

allowDiskUse

布尔

可选。允许写入临时文件。当设立为 true 时,聚合操作写入dbPath目录中的 _tmp 子目录。有关示例,请参阅allowDiskUseByDefault 交互

如果聚合阶段因为内存限制而写入临时文件,则分析器日志消息诊断日志消息包含一个 usedDisk 指示器。

cursor

文档

可选。指定游标的初始批处理大小。cursor字段的值是具有字段batchSize 的文档。有关语法和示例,请参阅指定初始批处理大小

maxTimeMS

non-negative integer

可选。指定处理游标)。如果没有指定 maxTimeMS 的值,操作不会超时。值为 0 会显式指定默认的无限制行为。

MongoDB 使用与 db.killOp() 相同的机制终止超过分配的时间限制的操作。MongoDB 仅在指定的中断点之一中终止操作。

bypassDocumentValidation

布尔

可选。仅当您指定 $out$merge 聚合阶段时使用。

启用db.collection.aggregate() 可在操作期间绕过模式验证。这样,您就可以插入不符合验证要求的文档。

readConcern

文档

可选。指定读关注

readConcern 选项的语法如下:readConcern: { level: <value> }

可能的读关注级别是:

有关读关注级别的更多信息,请参阅读关注级别

$out 阶段不能与读关注 "linearizable" 一起使用。如果为 db.collection.aggregate() 指定 "linearizable" 读关注,则不能将 $out 阶段包括在管道中。

$merge 阶段不能与读关注 "linearizable" 一起使用。换言之,如果您为 db.collection.aggregate() 指定 "linearizable" 读关注,则不能将 $merge 阶段包括在管道中。

collation

文档

可选。

可选。指定用于操作的排序规则

排序规则允许用户为字符串比较指定特定于语言的规则,例如字母大小写和重音符号规则。

排序规则选项的语法如下:

collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

指定排序规则时,locale 字段为必填字段;所有其他排序规则字段均为可选字段。有关字段的说明,请参阅排序规则文档

如果未指定排序规则,但集合具有默认排序规则(请参阅 db.createCollection()),则操作将使用为集合指定的排序规则。

如果没有为收集或操作指定排序规则,MongoDB 将使用先前版本中使用的简单二进制比较来进行字符串比较。

您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果执行带排序的查找,则不能使用一种排序规则进行查找而另一种排序规则进行排序。

hint

字符串或文档

可选。用于该聚合的索引。该索引位于运行聚合的初始集合/视图上。

通过索引名称或索引规范文档来指定索引。

重要提示:hint应用用于$lookup$graphLookup阶段。

comment

字符串

可选。用户可以指定任意字符串来帮助通过数据库分析器、currentOp 和日志来跟踪操作。

writeConcern

文档

可选。一个表达写关注的文档,该写关注会与 $out$merge 阶段一起配合使用。

省略此参数可将默认写关注(write concern)与 $out$merge 阶段一起使用。

以下示例运行一个包含两个阶段的管道。 第一阶段运行$currentOp操作,第二阶段筛选该操作的结果。

use admin
db.aggregate( [ {
$currentOp : { allUsers: true, idleConnections: true } }, {
$match : { shard: "shard01" }
}
] )
给本页内容打分