是否可以在迭代mongodb游标时检索文档列表?我的意思是:
for item in collection.find():
# do stuff with the document
项目只是一个文档,但我可以以某种方式检索列表并继续迭代光标吗? (因为collection.find()[:2]
返回一个列表,但你没有保持光标)。我知道我可以使用一些计数器来做到这一点,但它有一个语法糖吗?
看起来游标可以像列表一样压缩:
for item1, item2 in zip(collection.find(), collection.find({'_id': {'$gt': 0}})):
print((item1, item2))
编辑: 在this solution中,它显示您可以将整个集合作为列表(如果它适合RAM)并迭代它。这符合我的用例,但如果它不适合RAM呢?
答案 0 :(得分:0)
您可以在this question的答案中使用任何滚动窗口生成器,并将其应用于游标。 E.g。
cursor = collection.find()
for doc1, doc2 in window(cursor, n=2):
print(doc1, doc2)
或者
for doc1, doc2, doc3 in window(cursor, n=3):
print(doc1, doc2, doc3)
等