聚合命令对比
在本页面
[success] 建议
从4.4版开始,MongoDB添加
$accumulator
和$function
运算符。使用$accumulator
和$function
,mapReduce
可以使用聚合运算符重写表达式。即使是4.4版本之前,一些map-reduce表达式也可以使用改写其他聚合管道运算符,如
$group
,$merge
等。
聚合命令比较表
以下表格简要概述了 MongoDB 聚合命令的特点。
描述
实现 Map-Reduce 聚合以处理大型数据集。
主要特点
可以根据需要重复管道操作符。 管道运算符不需要为每个输入文档生成一个输出文档。 还可以生成新文档或过滤掉文档。 通过在版本4.2中添加$merge
,可以创建按需的物化视图,在该视图中可以逐步运行管道来更新输出集合的内容。$merge
可以将结果(插入新文档、合并文档、替换文档、保留现有文档、使操作失败、使用自定义更新管道处理文档)合并到现有集合中。
除了分组操作之外,还可以执行复杂的聚合任务以及对不断增长的数据集执行增量聚合。 见Map-Reduce 例子和执行增量 Map-Reduce。
灵活性
从4.4版开始,可以使用$accumulator
和$function
定义自定义聚合表达式。 在以前的版本中,只能使用聚合管道支持的运算符和表达式。 但是,可以使用$project
管道运算符添加计算字段,创建新的虚拟子对象以及将子字段提取到结果的顶层。 有关更多信息,请参阅$project
以及聚合管道操作符,以了解有关所有可用管道操作符的更多信息。
自定义map
,reduce
和finalize JavaScript
函数为聚合逻辑提供了灵活性。 有关功能的详细信息和限制,请参阅MapReduce。
也可以看看
译者:李冠飞
校对:李冠飞
最后更新于