2017-01-16 21 views
0

在对Mongo集合执行聚合操作后,我的最后一步是获取数组结果的长度。现在我有两个选择:

使用一个更$group阶段其_id等于null

db.col.aggregate([ 
    // ..., 
    { 
    $group: { 
     _id: null, 
     length: { $sum: 1}, 
    }, 
    }, 
]); 

或者使用.length方法:

db.col.aggregate([ 
    // ... 
]).length; 

他们都工作得很好,给我的预期结果。我只是想知道哪种方式在性能方面更好。你怎么看?

+0

什么是您的MongoDB服务器版本? – chridam

+0

@chridam我正在使用3.2 – Khang

回答

0

我会使用.length方法,因为它可能是JS Array对象中的属性(它可能取决于您的代码使用的JS引擎)。

我相信使用$group会使mongo引擎处理所有的数据,然后计算它返回的文件数量,这会慢得多。

正如felix所说,您可以运行一个小基准并查看哪个选项更快。