查询嵌入式列表中的数组

时间:2016-04-06 01:31:03

标签: python mongodb mongodb-query pymongo

假设我有一个类似于以下内容的mongo文档:

{
   'foo':1
   'listOfLists' : [ [1,2],[3,4] ]
}

(是的,我知道这不是它"真的"看起来但是它应该足够简单以便解释。)

如果我想编写一个查询以查看listsOfLists列表对象是否包含[3,4]的组合的查询,我该怎么做呢?

我可以做点什么吗

collection.find({'listsOfLists' : {'$elemMatch' : [3,4] } })

1 个答案:

答案 0 :(得分:1)

collection.find({ 'listsOfLists': [3,4] }).

它只是一个"直接匹配"在物业上。 MongoDB将自动查看每个数组元素。你在这里不需要$elemMatch

如果您要使用它,则需要一个运算符表达式,例如$eq

collection.find({ 'listsOfLists': { '$elemMatch': { '$eq': [3,4] } } }).

但这当然不是必需的,除非有两个或更多的"实际上需要在数组元素上匹配的条件。这是$elemMatch实际上是什么。