匹配文档
问题描述:
所以,我有在一些文件的结构如下:匹配文档
{
"Group": [
{
"data": {
"field1": "VALUE1",
"otherfield": "XXXX"
}
},
{
"data": {
"field1": "VALUE2",
"otherfield": "YYYYY"
}
}
]
}
的Group
阵列的大小可以是0,在尺寸1或2。我需要的是匹配包含VALUE1
和VALUE2
以及field1
的文档。在这里找不到适合这个特定情况的合适答案。
我试过使用$elemMatch
,但它不会工作,只带有两个值的文档。也就是说,它将像or
而不是and
一样工作。
答
可以使用带有点符号的$all
阵列查询运营商这样的:
db.test.find({'Group.data.field1': {$all: ['VALUE1', 'VALUE2']}})
的
$all
操作员选择的文件,其中一个字段的值是包含所有指定元素的数组。