【发布时间】:2017-06-24 05:35:44
【问题描述】:
我尝试了 3 种方法来分组数据:原生 js(带下划线)、group 和 Aggregate with $group
我使用these datas(巴黎的流派/位置'树)(237 168 行,35Mo)
这是我的script test,结果有点令人惊讶!
┌─────────────┬───────────────┐
│ Method │ avg time (ms) │
├─────────────┼───────────────┤
│ Pure js │ 897 │
├─────────────┼───────────────┤
│ Group │ 3863 │
├─────────────┼───────────────┤
│ Aggregation │ 364 │
└─────────────┴───────────────┘
为什么用 group 分组比聚合慢 10 倍? 用于什么“组”? 我怎样才能再次优化我的请求?
谢谢。
【问题讨论】:
-
Group 可能会更慢,因为需要在集合中的每个文档中调用 reduce 函数。最好的优化是直接或通过 MapReduce 预先计算组。
-
还需要注意的是,在 2.1 以上的 MongoDB 版本中不鼓励使用
group()可能是个好主意
标签: node.js mongodb aggregation-framework