我需要使用字段' colname'中的值来获取数组。我无法返回Cursor,只返回值数组。
有没有办法查询这个数组而不必循环Cursor?我觉得这是浪费处理资源。
现在我正在这样做:
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
headers = client['headers']
entomo = headers.entomo
entomo_data = entomo.find()
entomo_array = []
for data in entomo_data:
entomo_array.append(data['colname'])
然后我返回entomo_array
。
答案 0 :(得分:1)
您可以通过$group
<{1}} None
文件.aggregate()
方法执行此操作
cursor = entomo.aggregate([
{'$group': {
'_id': None,
'data': {'$push': '$colname'}
}}
])
从那里,您只需使用next
消费光标。
entomo_array = next(cursor)['data']
但如果&#39; colname&#39;在集合中是唯一的,您只需使用distinct
方法。
entomo_array = entomo.distinct('colname')
答案 1 :(得分:0)
如果'colname'字段具有不同的值,或者如果您不关心重复值,则可以使用distinct函数。以你的例子:
entomo_array = entomo.find().distinct('colname')