我有这些文件:
{
"result": "ok",
"variants": [
{
"state": {
"state1": false,
"state2": false
}
},
{
"state": {
"state1": false,
"state2": false
}
}
]
}
{
"result": "ok",
"variants": [
{
"state": {
"state1": false,
"state2": false
}
},
{
"state": {
"state1": false,
"state2": true
}
}
]
}
{
"result": "not_ok",
"variants": [
{
"state": {
"state1": true,
"state2": false
}
},
{
"state": {
"state1": true,
"state2": false
}
}
]
}
{
"result": "not_ok",
"variants": [
{
"state": {
"state1": true,
"state2": false
}
},
{
"state": {
"state1": false,
"state2": true
}
}
]
}
我必须找到文档中至少有一个变体有state1: false
和state2: false
的那个。我试过这个发现:
{
"variants.state.state1": false,
"variants.state.state2": false
}
但它为我提供了一个文档,其中一个变体有state1: false
,其中一个变体有state2: false
。它将单独的子文档的位置应用于一个子文档而不是两个过滤器。
答案 0 :(得分:1)
这就是答案:
{
"variants.state": { "$elemMatch" : {"state1" : false, "state2" : false } }
}