2012-01-12 106 views
2

是否有方法使用多個條件查詢mongodb中的文檔中的數組字段?示例文檔:查詢具有多個條件的mongodb數組字段

{ 
    'title': 'A document title', 
    'array_element': [ 
     { 
      'some_identifier': 'abcdefg', 
      'value': 10 
     }, 
     { 
      'some_identifier': 'hijklmnop', 
      'value': 5 
     }, 
     { 
      ...etc... 
     } 
    ] 
} 

我需要查詢的集合,以找到特定的標識符中的最低值,但是這些值存儲與他人在陣列中。我知道我可以查詢集合來查找包含具有最低值的數組元素的文檔,其中包含與標識符相匹配的數組元素,但我無法確定特定的數組元素是否符合這兩個條件。有沒有辦法有效地做到這一點?

回答

5

您可以使用$elemMatch operator來完成此操作,例如,

foo.find({ "array_element" : 
      { $elemMatch : { 'some_identifier' : 'abcdefg', 'value' : 8 } } });