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

MongoDB中如何统计OR条件查询的匹配文档数量

我来一步步帮你完成这个MongoDB的操作,下面是整理后的详细步骤和代码:

MongoDB OR条件查询及匹配文档统计

1. 插入测试数据

首先确保你已经成功连接MongoDB客户端,然后执行以下代码插入指定的嵌套文档:

# 假设已经初始化好MongoDB客户端实例client
collection = client.test.or_example
new_documents = [
    {'_id': 1, 'proportions':{'A': 0.3, 'B': 0.1}},
    {'_id': 2, 'proportions':{'C': 0.3, 'D': 0.1}},
    {'_id': 3, 'proportions':{'A': 0.3, 'C': 0.3}},
    {'_id': 4, 'proportions':{'B': 0.1, 'D': 0.3}},
    {'_id': 5, 'proportions':{'A': 0.1, 'B': 0.3}}
]
collection.insert_many(new_documents)

2. 构造OR条件查询

我们需要查询满足proportions.A > 0.2 或者 proportions.B > 0.2的文档,对应的查询语句如下:

# 定义OR查询条件
query = {
    '$or': [
        {'proportions.A': {'$gt': 0.2}},
        {'proportions.B': {'$gt': 0.2}}
    ]
}

3. 执行查询并统计匹配数量

执行查询后,使用count_documents()方法可以直接统计符合条件的文档数量:

# 统计匹配文档数
match_count = collection.count_documents(query)
print(f"匹配的文档数量: {match_count}")

结果验证

我们手动核对一下每个文档的匹配情况:

  • _id=1:proportions.A=0.3>0.2 → 匹配
  • _id=2:A和B字段都不存在,不满足任一条件 → 不匹配
  • _id=3:proportions.A=0.3>0.2 → 匹配
  • _id=4:A和B的数值都不大于0.2 → 不匹配
  • _id=5:proportions.B=0.3>0.2 → 匹配

最终统计结果为 3。

内容的提问来源于stack exchange,提问作者Johan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:58:09