我想知道我在做什么错。我正在尝试查询对象数组。 我期望将文档放在下面,但什么也没得到。
这是集合:
[
{
_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
谢谢!
答案 0 :(得分:1)
如何避免元素匹配,而是这样做?
db.surveys.find({
$or: [{"participants.answers.question1":"abc"}, {"participants.answers.question2":"xyz"}]
})