所以,我在一些文档中有以下结构:
{
"Group": [
{
"data": {
"field1": "VALUE1",
"otherfield": "XXXX"
}
},
{
"data": {
"field1": "VALUE2",
"otherfield": "YYYYY"
}
}
]
}
Group
数组的大小可以是0,1或2。我需要的是匹配包含VALUE1
和VALUE2
field1
的文档。对于这个具体案例,无法在这里找到合适的答案。
我尝试使用$elemMatch
但是只带两个值的文档不起作用。也就是说,它会像or
而不是and
一样工作。
答案 0 :(得分:2)
您可以使用带有点表示法的$all
数组查询运算符:
db.test.find({'Group.data.field1': {$all: ['VALUE1', 'VALUE2']}})
$all
运算符选择字段值为包含所有指定元素的数组的文档。