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

时间:2012-01-12 17:22:41

标签: python mongodb pymongo

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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