我想在mongo中返回特定的id,这个列表名为list_followers,它位于数据库中。但是,数据库的某些文档的列表大小为零。因此,我获得了list_followers的key_error。
list_of_ids = []
for cursor in collection.find({ "list_followers" : { "$exists":True}}):
id = cursor['_id']['uid']
list_of_ids.append(id)
followers = cursor['list_followers']
print len(followers)
print len(list_of_ids)
如何仅使用大于零的list_followers查询游标?我尝试过{"list_followers":{"$gt":0}}
或{"list_followers":{"$gt":{"$size":0}}}
,但这不是我想要的。
答案 0 :(得分:2)
试试这个
collection.find({'list_followers': {'$not': {'$size': 0}}}))
答案 1 :(得分:2)
您正在寻找$size运营商。您还应该在查询中使用$exists
,因为没有它,它甚至会匹配没有字段list_followers
的文档:
collection.find({'list_followers': {'$not' : {'$size' : 0}, '$exists' : True}})
答案 2 :(得分:1)
您可以检查$size
是否等于0:
$ size运算符匹配任何具有元素数量的数组 由参数指定。
collection.find({"list_followers": {"$not": {'$size': 0}, "$exists": True}})
感谢@Christian P提供有关exists
要求的说明。
或者,您可以检查第一个元素的existence
:
collection.find({"list_followers.0": {"$exists": True}})