提问者:小点点

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


如何通过查找查询获取文档中存在查询的数组字段的所有文档?

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

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

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

共1个答案

匿名用户

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

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