2017-08-08 55 views
1

所以,我有在一些文件的结构如下:匹配文档

{ 
    "Group": [ 
    { 
     "data": { 
     "field1": "VALUE1", 
     "otherfield": "XXXX" 
     } 
    }, 
    { 
     "data": { 
     "field1": "VALUE2", 
     "otherfield": "YYYYY" 
     } 
    } 
    ] 
} 

Group阵列的大小可以是0,在尺寸1或2。我需要的是匹配包含VALUE1VALUE2以及field1的文档。在这里找不到适合这个特定情况的合适答案。

我试过使用$elemMatch,但它不会工作,只带有两个值的文档。也就是说,它将像or而不是and一样工作。

回答

2

可以使用带有点符号的$all阵列查询运营商这样的:

db.test.find({'Group.data.field1': {$all: ['VALUE1', 'VALUE2']}}) 

$all操作员选择的文件,其中一个字段的值是包含所有指定元素的数组。

相关问题