在嵌套数组中匹配具有两个值的文档

时间:2017-08-08 17:02:36

标签: mongodb mongodb-query

所以,我在一些文档中有以下结构:

{
  "Group": [
    {
      "data": {
        "field1": "VALUE1",
        "otherfield": "XXXX"
      }
    },
    {
      "data": {
        "field1": "VALUE2",
        "otherfield": "YYYYY"
      }
    }
  ]
}

Group数组的大小可以是0,1或2。我需要的是匹配包含VALUE1VALUE2 field1的文档。对于这个具体案例,无法在这里找到合适的答案。

我尝试使用$elemMatch但是只带两个值的文档不起作用。也就是说,它会像or而不是and一样工作。

1 个答案:

答案 0 :(得分:2)

您可以使用带有点表示法的$all数组查询运算符:

db.test.find({'Group.data.field1': {$all: ['VALUE1', 'VALUE2']}})
  

$all运算符选择字段值为包含所有指定元素的数组的文档。