我的某些文档包含newOne
:true
或false
且其上有所有者标记。我想要计算newOne : true
和所有者字段等于" MSlaton"的所有字段。我如何在mongodb中解决这个问题?
谢谢!
答案 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()
的同一个数量级的中途进行处理一个非常大的集合。