2016-03-15 188 views
1

如何在文檔中存在查詢數組字段的情況下使用find查詢獲取所有文檔?MongoDB - 僅查找其數組包含查詢數組的文檔

{ 
    name: 'test1', 
    "array": [ 
     { 
      "name": "100", 
      "subArray": [ 
       "arr1" 
      ] 
     }, 
     { 
      "name": "200", 
      "subArray": [ 
       "arr2", 
       "arr3" 
      ] 
     } 
    ] 
} 

如果我在查找中使用此查詢({})就還給不僅是良好的效果:

$and: [ 
    {'array.name': '100'}, {'array.subArray': 'arr1'}, 
    {'array.name': '200'}, {'array.subArray': 'arr2'} 
] 

回答

1

您需要使用$elemMatch操作。你的查詢應該是這樣的:

$and: [ 
    { array: { $elemMatch: { name: '100', subArray: 'arr1' } } }, 
    { array: { $elemMatch: { name: '200', subArray: 'arr1' } } } 
] 
+0

非常感謝這個作品! – reacter

相關問題