MongoDB中基于两个条件统计符合条件的文档数量
MongoDB双条件查询统计写法指南
嘿,我来帮你搞定MongoDB双条件统计的问题~ 其实双条件查询主要分两种常见逻辑:同时满足两个条件(AND)和满足任一条件(OR),下面分别给你讲具体写法:
1. 同时满足两个条件(AND逻辑)
如果你要统计既符合条件A又符合条件B的文档数量,直接把两个条件放在同一个查询对象里就行,就像这样:
// 示例:统计userName为"Subhi"且Password为"123"的文档数量 db.users.countDocuments({"userName":"Subhi", "Password":"123"})
结合你提供的文档,这个查询会返回1——因为只有第一个Subhi的文档同时满足这两个条件,第三个Subhi的文档没有Password字段。
小提示:MongoDB 3.2版本之后,官方推荐使用
countDocuments()替代旧的count()方法,count()已经被标记为废弃,避免后续版本出现兼容性问题哦。
2. 满足任一条件(OR逻辑)
如果要统计符合条件A或者符合条件B的文档数量,需要用到$or操作符,把多个条件放在数组里:
// 示例:统计userName为"Subhi"或Password为"123"的文档数量 db.users.countDocuments({ $or: [ {"userName":"Subhi"}, {"Password":"123"} ] })
针对你的文档,这个查询会返回3——两个Subhi的文档加上Omar的文档(他的Password是123)。
额外说明
如果你的条件涉及更复杂的逻辑(比如范围匹配、字段存在性等),也可以把这些条件和AND/OR结合起来用。比如要统计userName是Subhi且存在Password字段的文档数量:
db.users.countDocuments({"userName":"Subhi", "Password": {$exists: true}})
这个查询针对你的文档会返回1,也就是第一个Subhi的文档。
内容的提问来源于stack exchange,提问作者Subhi
相关产品推荐
相关产品推荐

