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

MongoDB如何查询返回data数组所有对象status均为PASS的文档

MongoDB查询全匹配数组元素解决方案

错误原因分析

你之前编写的查询逻辑仅校验data数组中至少存在1个status为PASS的元素,只要满足该条件的文档就会被返回,因此包含FAIL状态的文档也会被命中,不符合预期。

正确查询语句

我们只需要对「存在status不为PASS的数组元素」这个逻辑取反,即可筛选出所有数组元素status均为PASS的文档:

db.Collection.aggregate({
    $match: {
        "data": {
            $exists: true,
            $not: { $size: 0 },
            $not: { 
                $elemMatch: { "status": { $ne: "PASS" } } 
            }
        }
    }
})

逻辑说明

  • 保留了原有data字段存在且不为空的校验规则
  • 新增的$not: { $elemMatch: { "status": { $ne: "PASS" } } }规则表示:data数组中不存在任何status不等于PASS的元素,即所有元素的status都是PASS,完全符合筛选需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:57:00