聚合命令比较

下表简要概述了 MongoDB 聚合命令的功能。

aggregate / db.collection.aggregate()mapReduce / db.collection.mapReduce()
Description设计的特定目标是提高聚合任务的性能和可用性。

使用“流水线”方法,其中对象在经过一系列流水线运算符(例如$group$match$sort)时进行转换。
有关流水线运算符的更多信息,请参见聚合管道运算符
实施 Map-Reduce 聚合以处理大型数据集。
主要功能管道线运算符可以根据需要重复。
管道操作员不必为每个 Importing 文档都生成一个输出文档。
还可以生成新文档或筛选出文档。除了分组操作之外,还可以执行复杂的聚合任务以及对连续增长的数据集执行增量聚合。
参见Map-Reduce Examples执行增量 Map-减少
灵 Active仅限于聚合管道支持的运算符和表达式。
但是,可以使用$project管道运算符添加计算字段,创建新的虚拟子对象以及将子字段提取到结果的顶级。
有关所有可用管道运算符的更多信息,请参见$project,有关更多信息,请参见聚合管道运算符
自定义mapreducefinalize JavaScript 函数为聚合逻辑提供了灵 Active。
有关功能的详细信息和限制,请参见mapReduce
输出结果作为光标返回结果。如果管道包含$out阶段,则光标为空。
在版本 3.6 中进行了更改:MongoDB 3.6 无需使用aggregate命令而无需使用cursor选项,除非该命令包含explain选项,否则该命令将不使用。除非包含explain选项,否则必须指定游标选项。
要指示具有默认批处理大小的光标,请指定cursor: {}
要使用非默认批处理大小指示光标,请使用cursor: { batchSize: <num> }
返回各种选项的结果(内联,新收集,合并,替换,缩小)。有关输出选项的详细信息,请参见mapReduce
共享支持非分片和分片 Importing 集合。支持非分片和分片 Importing 集合。
更多信息Aggregation Pipeline
db.collection.aggregate()
aggregate
Map-Reduce
db.collection.mapReduce()
mapReduce.