You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:33:59