从pymongo加载单个字段作为数组

时间:2015-12-03 13:50:57

标签: python mongodb pymongo

我有一个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'])]

工作正常,但如果有很多记录,那就很慢了。有没有更有效的方法呢?

1 个答案:

答案 0 :(得分:3)

只要您不需要包含重复项,就可以通过调用find查询返回的游标上的distinct来执行此操作:

names = db.people.find({'age': {'$gt': 18}}).distinct('name')