Python 从mongodb获取循环中的n个文档
我有一个101个文档的集合,我需要一次迭代10个集合,并将10个文档的特定字段的值存储在一个列表中 我试过这个:Python 从mongodb获取循环中的n个文档,python,mongodb,pymongo,Python,Mongodb,Pymongo,我有一个101个文档的集合,我需要一次迭代10个集合,并将10个文档的特定字段的值存储在一个列表中 我试过这个: values = db.find({},{"field":1}) urls = [] count = 0 for value in values: if(count < 10): urls.append(value["field"]) count = count + 1 print count else: print urls urls
values = db.find({},{"field":1})
urls = []
count = 0
for value in values:
if(count < 10):
urls.append(value["field"])
count = count + 1
print count
else:
print urls
urls = []
urls.append(value["field"])
count = 1
它不会获取最后一个值,因为它没有达到if条件。有什么优雅的方法可以做到这一点并纠正这种情况吗 每次循环重新启动时,都将计数重置为0。将声明移到循环之外:
count = 0
for value in values:
如果URL已经被填充,这将是您唯一的问题。据我所知,您有一些数据要组织成大小为10的批。如果是这样,或许这将有助于:
N = 10
values = list(db.find({},{"field":1}))
url_batches = [
[v['field'] for v in values[i:i+N]]
for i in xrange(0, len(values), N)
]
可能也应该在else中重置,或使用%10@jonrsharpe不确定我是否理解了该问题以提供更好的答案。Lenvalues应该是values.count,因为values是光标。同样在纠正此错误后,抛出一个错误:在xrange0中的for i中,count,N File build/bdist.macosx-10.6-universal/egg/pymongo/cursor.py,第504行,在getitem File build/bdist.macosx-10.6-universal/egg/pymongo/cursor.py,第354行,在uuu check u ok u to u chain pymongo.errors.invalidooperation中:执行后无法设置选项query@wannaC若您只有101个文档,那个么您可能不需要将光标转换为列表查看编辑。