我已經在mongo中使用了很多聚合,我知道在分組計數等方面的性能優勢。但是,在這兩種方法中,mongo在計算所有文檔的性能方面有任何差異收集?:MongoDB Count()與Aggregation
collection.aggregate([{ $ 匹配:{} },{ $組:{ _id:空, 計數:{$總和:1}} }]) ;
和
collection.find({}).count()
更新:第二種情況: 比方說,我們有這樣的樣本數據:
{_id: 1, type: 'one', value: true}
{_id: 2, type: 'two', value: false}
{_id: 4, type: 'five', value: false}
隨着aggregate()
:
var _ids = ['id1', 'id2', 'id3'];
var counted = Collections.mail.aggregate([
{
'$match': {
_id: {
'$in': _ids
},
value: false
}
}, {
'$group': {
_id: "$type",
count: {
'$sum': 1
}
}
}
]);
隨着count()
:
var counted = {};
var type = 'two';
for (i = 0, len = _ids.length; i < len; i++) {
counted[_ids[i]] = Collections.mail.find({
_id: _ids[i], value: false, type: type
}).count();
}
爲什麼不試試看看? – JohnnyHK
@JohnnyHK試過''collection.aggregate()'似乎有點快,但不確定,100K的速度測試幾乎一樣。我希望看到社區的經驗。 –