Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.aggregate()

在此页面上

  • 定义
  • 例子

版本 3.6 中的新增功能

db.aggregate()

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

db.aggregate()方法采用以下语法:

db.aggregate( [ <pipeline> ], { <options> } )
  • pipeline参数是要执行的阶段的数组。 它必须从不需要底层collection的兼容阶段开始,例如$currentOp$listLocalSessions

  • options 文档可包含以下字段和值:

    字段
    类型
    说明
    explain
    布尔

    可选。 指定返回有关管道处理的信息。 有关示例,请参阅聚合管道操作的返回信息

    不适用于多文档事务

    allowDiskUse
    布尔

    可选。 允许写入临时文件。 设置为true时,聚合操作可以将数据写入到dbPath目录中的_tmp子目录。 有关示例,请参阅使用外部排序执行大型排序操作

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

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

    可选。指定处理游标上操作的时间限制(以毫秒为单位)。如果您没有指定 maxTimeMS 的值,操作将不会超时。如果值为 0,则明确指定默认的无限制行为。

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

    bypassDocumentValidation
    布尔

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

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

    版本 3.2 中的新增功能

    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 将使用先前版本中使用的简单二进制比较来进行字符串比较。

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

    版本 3.4 中的新增功能

    hint
    字符串或文档

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

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

    注意

    hint 不适用于 $lookup$graphLookup 阶段。

    版本 3.6 中的新增功能

    comment
    字符串

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

    版本 3.6 中的新增功能

    writeConcern
    文档

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

    $out$merge 阶段省略使用默认写关注。

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

use admin
db.aggregate( [ {
$currentOp : { allUsers: true, idleConnections: true } }, {
$match : { shard: "shard01" }
}
] )

后退

db.adminCommand

来年

db.commandHelp

在此页面上