首页 > 解决方案 > MongoDB:最好使用带有限制的查找并在循环中跳过或使用无限制的查找来检索大量数据

问题描述

我有一个包含几百万条记录的 mongo 集合,我需要对其进行迭代以进行预处理并存储在单独的集合中。使用循环迭代限制为小块的游标或迭代没有定义限制的游标会更好吗?

from pymongo import MongoClient
from other_file import process

mc = MongoClient()
collection_obj = mc.mydb.mycoll
# method 1 
cursor1 = collection_obj.find({})
for each_ele in cursor1:
    process(each_ele)

# method 2
for i in range(0, total_length, 5000):
    cursor2 = collection_obj.find({}).limit(5000).skip(i)
    for each in cursor2:
        process(each)

我能知道其中哪一个更适合大型数据集吗?

标签: pythonmongodbpymongo

解决方案


推荐阅读