对于mongo中的给定文件
{"_id" : "joe":
grocerylist: [ "cheddar", "apple", "oranges" ]
}
{"_id" : "joanna":
grocerylist: [ "cheddar", "foobar" ]
}
{"_id" : "john":
grocerylist: [ "apple", "oranges" ]
}
如果我在列表中搜索带有cheddar的用户
find({"grocerylist" : cheddar}, fields={'_id' : 1})
我得到了
[{u'_id': u'joe'}, {u'_id': u'joanna'}]
使用Mongo,我怎样才能获得匹配用户的列表,比如这个..
[u'joe', u'joanna']
感谢。
答案 0 :(得分:1)
一种选择是使用列表理解:
cursor = db.col.find({"grocerylist" : cheddar}, fields={'_id' : 1})
print([document['user'] for document in cursor])
答案 1 :(得分:1)
_id
在整个集合中都是唯一的,因此您可以在此处使用distinct
。
collection.distinct('_id', {'grocerylist' : cheddar})