我问了一个与此here相关的上一个问题但请说我的文档如下所示:
{
'foo':1
'listOfLists' : [ [1,2],[3,4],.... ]
}
我怎样才能查询listOfLists字段中条目的第一个元素是否与某个值匹配?从我之前的问题
collection.find({'listOfLists' : {'$elemMatch' : {'$eq': [3,4] } } })
会匹配文档,但是如果我只想检查第一个元素是否为3呢?上一个问题告诉我,对于直接匹配,我不需要使用$elemMatch
,但是我可以使用它进行第一次元素检查吗?也许像是
collection.find({'listOfLists' : {'$elemMatch' : 3 } })
我认为这不应该工作,因为它会尝试将列表与整数进行比较。有任何想法吗?感谢。
答案 0 :(得分:0)
您似乎可以执行以下操作:
collection.find({'listOfLists': {'$elemMatch': {'0': {"$eq": 3}}}})
在这种情况下,{"$eq": 3}
部分只会应用于listOfLists
内部子列表的第一个元素。