检查数组中字段的存在

时间:2018-06-05 19:13:16

标签: mongodb aggregation-framework

考虑一个名为'scheme'的集合,其中包含以下文档。如何在包含“a”的预付费数组中查询具有至少元素的所有方案?这里第一个集合满足标准,因为dataArray [0]有'a'。第二个系列没有。因此,我想查询只找到这样的集合,整个dataArray在其中一个元素中包含'a'。

{
    "plan":{
        "dataArray" : [
                 {
                     "a" : "x",
                     "b" : "y",
                     "c" : "z"
                 },
                 {
                     "b" : "x",
                     "c" : "z"
                 }
            ],
        }
}
{
    "plan":{
        "dataArray" : [
            {
                "b" : "y",
                "c" : "z"
            },
            {
                "b" : "x",
                "c" : "z"
            }
        ],
    }
}

1 个答案:

答案 0 :(得分:2)

您可以在此处使用$exists运算符来检查数组中是否存在属性

db.collection.find({
  "plan.dataArray.a": {
    $exists: true
  }
})

<强>输出

[
  {
    "plan": {
      "dataArray": [
        {
          "a": "x",
          "b": "y",
          "c": "z"
        },
        {
          "b": "x",
          "c": "z"
        }
      ]
    }
  }
]