我需要迭代一次aggregate()结果两次。但是,不可能倒回aggregate()返回的command_cursor。我试图将聚合()的选项UseCursor转为True,但它总是返回一个command_cursor。有办法做我想做的事吗?
主要问题是我无法将aggregate()返回的所有文件存储在列表中...它会导致我的应用程序崩溃并在~127000个文档后冻结我的VM
答案 0 :(得分:0)
简单地执行aggregate
两次:
pipeline = [...]
for doc in collection.aggregate(pipeline):
# do step 1 with your documents
for doc in collection.aggregate(pipeline):
# do step 2 with your documents
事实上,这是普通Cursor实际上做的rewind
:它只是执行两次相同的查询。