【发布时间】:2023-03-07 06:08:01
【问题描述】:
我对何时使用 group()、使用 $group 或 mapreduce 聚合感到有些困惑。我在http://www.mongodb.org/display/DOCS/Aggregation 阅读了有关 group() 的文档,http://docs.mongodb.org/manual/reference/aggregation/group/#_S_group 阅读了 $group.. 分片是 group() 不起作用的唯一情况吗?另外,我觉得 $group 比 group() 更强大,因为它可以与聚合框架中的其他管道运算符一起使用。$group 与 mapreduce 相比如何?我在某处读到它不会生成任何临时集合,而 mapreduce 会。是这样吗?
谁能提供一个插图或引导我到一个链接,将这三个概念一起解释,获取相同的样本数据,以便我可以轻松地比较它们?
编辑:
另外,如果您能在新的 2.2 版本发布后特别指出这些命令中的任何新内容,那就太好了..
【问题讨论】:
-
很好地解释了......可以提供帮助的链接是......groups.google.com/forum/?fromgroups=#!topic/mongodb-user/…
-
@user2157221 很棒的发现,只是为了突出谷歌小组讨论中的一些事情:(1)“聚合框架可以使用索引来降低您只对子集感兴趣的操作成本集合的内容。"; (2) “等效 AF 的运行速度 [比 MR] 快 7 倍。”; (3) “使用 map reduce,您通常输出到一个集合(通常是一个临时集合)。聚合框架更适合在您真正想要做的时候将数据直接返回到调用库。”
标签: mongodb mapreduce mongodb-query aggregation-framework