MongoDB - 仅查找其数组包含查询数组的文档

时间:2016-03-15 14:47:21

标签: mongodb

如何使用查询查询获取查询数组字段存在于文档中的所有文档?

{
    name: 'test1',
    "array": [
        {
            "name": "100",
            "subArray": [
                "arr1"
            ]
        },
        {
            "name": "200",
            "subArray": [
                "arr2",
                "arr3"
            ]
        }
    ]
}

如果我在find({})中使用此查询,它不仅会返回好结果:

$and: [
  {'array.name': '100'}, {'array.subArray': 'arr1'},
  {'array.name': '200'}, {'array.subArray': 'arr2'}
]

1 个答案:

答案 0 :(得分:1)

您需要使用$elemMatch运算符。您的查询应如下所示:

$and: [
  { array: { $elemMatch: { name: '100', subArray: 'arr1' } } },
  { array: { $elemMatch: { name: '200', subArray: 'arr1' } } }
]