查询具有多个条件的mongodb数组字段

joh*_*eth 2 python mongodb pymongo

有没有办法在mongodb中使用多个条件查询文档中的数组字段?示例文档:

{
    'title': 'A document title',
    'array_element': [
        {
            'some_identifier': 'abcdefg',
            'value': 10
        },
        {
            'some_identifier': 'hijklmnop',
            'value': 5
        },
        {
            ...etc...
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我需要查询集合以找到特定标识符的最低值,但是这些值与其他值一起存储在数组中.我知道我可以查询集合来查找包含具有最低值的数组元素的文档,其中包含与标识符匹配的数组元素,但我无法确定特定的数组元素是否与这两个条件都匹配.有没有办法有效地做到这一点?

mne*_*syn 5

您可以使用$elemMatch操作员来完成此操作,例如

foo.find( { "array_element" : 
             { $elemMatch : { 'some_identifier' : 'abcdefg', 'value' : 8 } } } );
Run Code Online (Sandbox Code Playgroud)