首页 > 解决方案 > 查询 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

谢谢!

标签: mongodb

解决方案


如何避免元素匹配并这样做呢?

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

推荐阅读