从 pymongo 加载单个字段作为数组
Load single field from pymongo as an array
我有一个包含 mongo 个对象的列表,我基本上想从中提取一个字段。
假设我的对象结构如下
[
{'name': 'Lucy', age: '24'},
{'name': 'Nicole', age: '22'},
{'name': 'John', age: '28'},
]
我想从 PyMongo 加载格式为 ['Lucy', 'Nicole', 'Lauren']
的数组。
一种方法就是简单地 python 列表理解:
names = [p['name'] for p in db.people.find({'age': {'$gt': 18}}, ['name'])]
这很好用,但如果有很多记录,速度会很慢。有更有效的方法吗?
只要不需要包含重复项,就可以通过在 find
查询返回的游标上调用 distinct
来实现:
names = db.people.find({'age': {'$gt': 18}}).distinct('name')
我有一个包含 mongo 个对象的列表,我基本上想从中提取一个字段。
假设我的对象结构如下
[
{'name': 'Lucy', age: '24'},
{'name': 'Nicole', age: '22'},
{'name': 'John', age: '28'},
]
我想从 PyMongo 加载格式为 ['Lucy', 'Nicole', 'Lauren']
的数组。
一种方法就是简单地 python 列表理解:
names = [p['name'] for p in db.people.find({'age': {'$gt': 18}}, ['name'])]
这很好用,但如果有很多记录,速度会很慢。有更有效的方法吗?
只要不需要包含重复项,就可以通过在 find
查询返回的游标上调用 distinct
来实现:
names = db.people.find({'age': {'$gt': 18}}).distinct('name')