我有一个mongo对象列表,我基本上想要从中获取单个字段。
因此,假设我的对象结构如此
[
{'name': 'Lucy', age: '24'},
{'name': 'Nicole', age: '22'},
{'name': 'John', age: '28'},
]
我想以['Lucy', 'Nicole', 'Lauren']
格式从PyMongo加载数组。
这样做的一种方法只是一个简单的python列表理解:
names = [p['name'] for p in db.people.find({'age': {'$gt': 18}}, ['name'])]
工作正常,但如果有很多记录,那就很慢了。有没有更有效的方法呢?
答案 0 :(得分:3)
只要您不需要包含重复项,就可以通过调用find
查询返回的游标上的distinct
来执行此操作:
names = db.people.find({'age': {'$gt': 18}}).distinct('name')