如何使用mongodb仅计算与两个字段匹配的集合

时间:2015-11-26 07:47:49

标签: mongodb

我的某些文档包含newOnetruefalse且其上有所有者标记。我想要计算newOne : true和所有者字段等于" MSlaton"的所有字段。我如何在mongodb中解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用 count() 方法

db.collection.count( { "newOne": true, "owner": "MSlaton" } )

相当于

db.collection.find( { "newOne": true, "owner": "MSlaton" } ).count()

另一条路线,虽然速度较慢,但​​可以通过 aggregation framework 运行以下聚合操作来获取计数:

db.collection.aggregate([
    { "$match" : { "newOne": true, "owner": "MSlaton" } },
    { "$group": { "_id": null, "count": { "$sum": 1 } } }
]);

聚合操作较慢,因为它只读取集合中的每个文档并处理它只能在 count() 的同一个数量级的中途进行处理一个非常大的集合。