Docs 菜单
Docs 主页
/ /

db.aggregate()(mongosh方法)

db.aggregate()

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

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。

有关数据库命令,请参阅 aggregate 命令。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

db.aggregate() 方法使用的语法如下:

db.aggregate( [ <pipeline> ], { <options> } )

注意

db.aggregate()可以接受管道阶段作为单独的参数,而不是作为大量中的元素。如果不将pipeline 指定为大量,则无法指定options 参数。

pipeline参数是要执行的阶段的大量。管道必须从不需要根本的集合的兼容阶段开始,例如$currentOp$listLocalSessions

options文档可包含以下字段:

字段
类型
说明

explain

布尔

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

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

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

allowDiskUse

布尔

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

如果聚合阶段因为内存限制而写入临时文件,则分析器日志消息诊断日志消息包含一个 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" }
}
] )

后退

db.adminCommand

在此页面上