为什么Group比Aggregate的$ group慢?

时间:2013-05-20 10:27:05

标签: node.js mongodb aggregation-framework

我尝试用3种方法对数据进行分组:原生js(带下划线),groupAggregate with $group

我使用these datas(巴黎的流派/位置树)(237 168行,35Mo)

这是我的script test,结果有点令人惊讶!

┌─────────────┬───────────────┐
│ Method      │ avg time (ms) │
├─────────────┼───────────────┤
│ Pure js     │ 897           │
├─────────────┼───────────────┤
│ Group       │ 3863          │
├─────────────┼───────────────┤
│ Aggregation │ 364           │
└─────────────┴───────────────┘

为什么使用group进行分组比聚合慢10倍? 对于什么使用“组”? 我怎样才能再次优化我的要求?

感谢。

1 个答案:

答案 0 :(得分:1)

组命令使用与mapreduce相同的框架,并且有许多资源可以解释为什么MR比聚合框架慢。主要的是它在一个单独的JS线程中运行,其中agg框架在服务器上本机运行。

请参阅此处的详细信息MongoDB aggregation comparison: group(), $group and MapReduce