mongodb - 查询 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
谢谢!
解决方案
如何避免元素匹配并这样做呢?
db.surveys.find({
$or: [{"participants.answers.question1":"abc"}, {"participants.answers.question2":"xyz"}]
})
推荐阅读
- javascript - 在代理中调用console.log()时访问方法startsWith抛出错误
- c# - 将对象转换为 ValueTuple
- c# - 我如何从 .net 核心中的 ASYNC SOAP Web 服务获得响应?
- python - 使用 EWS-office 365 发送电子邮件(当 IMAP 和 POP 3 均不可用时)?
- javascript - 优化代码以加快执行速度
- java - 为什么在 Java 中打印 0100 会打印 64?
- c++ - 为什么从采用 std::ranges::output_range 的算法中返回 std::ranges::safe_iterator_t 而不是 std::ranges::safe_subrange_t
- c++ - 错误 C2227:“->yr”的左侧必须指向类/结构/联合/通用类型
- typescript - 创建对象字面量时省略未定义的值
- python - Operating System Error 123 On Backup of SQL Database Via Subprocess