查询MongoDB中的嵌套对象数组

时间:2020-06-23 03:15:38

标签: mongodb

我想知道我在做什么错。我正在尝试查询对象数组。 我期望将文档放在下面,但什么也没得到。

这是集合:

[
    {
        _id: ObjectId("5ef1714fc77dd22599054c8d")
        "surveyName": 'Sample',
        "participants": [
            {
                "name": 'John'
                "answers": {
                    'question1': 'abc',
                    'question2': 'def'
                }
            },
            {
                "name": 'Paul'
                "answers": {
                    'question1': 'def',
                    'question2': 'abc'
                }
            }
        ]
    }
]

这是我要运行的查询:

db.surveys.find({
    _id: ObjectId("5ef1714fc77dd22599054c8d"),
    'participants.answers': { 
        '$elemMatch': { 
            '$or': [ 
                {'question1': 'abc'},
                {'question2': 'def'}
            ]
        }
    }
})

结果:

Fetched 0 record(s) in 22ms

谢谢!

1 个答案:

答案 0 :(得分:1)

如何避免元素匹配,而是这样做?

db.surveys.find({
    $or: [{"participants.answers.question1":"abc"}, {"participants.answers.question2":"xyz"}]
})