对Mongo集合执行聚合操作后,我的最后一步是获取数组结果的长度。现在我有两个选择:
再使用$group
_id
等于null
的{{1}}阶段:
db.col.aggregate([
// ...,
{
$group: {
_id: null,
length: { $sum: 1},
},
},
]);
或使用.length
方法:
db.col.aggregate([
// ...
]).length;
它们都运作良好并给我预期的结果。我只是想知道哪种方式在性能方面更好。你觉得怎么样?
答案 0 :(得分:0)
我会使用.length
方法,因为它可能是JS Array对象中的一个属性(它可能取决于你的代码使用的JS引擎)。
我相信使用$group
会使mongo引擎处理所有数据,然后计算它返回的文档数量,这会慢得多。
正如费利克斯所说,你可以运行一个小基准,看看哪个选项更快。