Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

聚合命令比较

在此页面上

  • 聚合命令比较表

注意

作为 Map-Reduce 替代方案的聚合管道

从MongoDB 5.0开始, map-reduce已弃用:

有关 map-reduce 的聚合管道替代方案的示例,请参阅:

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

说明

设计的具体目标是提高聚合任务的性能和可用性。

使用“管道”方法,这样对象会在通过一系列管道操作符(如 $group$match$sort 时进行转换。

有关管道操作符的更多信息,请参阅聚合操作符。

为处理大型数据集实现 map-reduce 聚合。

主要功能

管道操作符可以根据需要重复使用。

管道操作符无需为每个输入文档生成一个输出文档。

还可以生成新文档或者过滤掉文档。

使用 $merge 阶段,您可以创建按需物化视图,其中输出集合的内容可以在管道运行时逐步更新。$merge 可以将结果(插入新文档、合并文档、替换文档、保留现有文档、操作失败、使用自定义更新管道处理文档)纳入现有集合。

除分组操作之外,还可执行复杂的聚合任务,以及对不断增长的数据集执行增量聚合。

请参阅 Map-Reduce 示例执行增量 Map-Reduce

灵活

您可以使用 $accumulator$function 定义自定义聚合表达式。

您还可以使用 $project 管道操作符添加计算字段、创建新的虚拟子对象以及将子字段提取到结果顶层。

有关详细信息,请参阅 $project;有关所有可用管道操作符的详细信息,请参阅聚合操作符

自定义 mapreducefinalize JavaScript 函数为聚合逻辑提供了灵活性。

有关功能的详细信息和限制,请参阅mapReduce

输出结果

以游标形式返回结果。如果管道包括 $out 阶段或 $merge 阶段,则游标为空。

使用 $out,您可以完全替换现有的输出集合或输出到新集合。请参阅 $out 了解详细信息。

使用$merge,您可以输出到新的或现有的集合。对于现有集合,可以指定如何将结果合并到输出集合中(插入新文档、合并文档、替换文档、保留现有文档、操作失败、使用自定义更新管道处理文档)。请参阅 $merge 了解详细信息。

返回各种选项(内联、新集合、合并、替换、减少)的结果。有关输出选项的详细信息,请参阅 mapReduce

分片

支持非分片和分片输入集合。

$merge 可输出到非分片或分片集合。

支持非分片和分片输入集合。

详细信息

提示

另请参阅:

后退

$zip

在此页面上