使用 PyMongo 3.7.2,我尝试通过在 MongoDB 游标上使用 batch_size 来分块读取集合,如here所述。基本思想是在集合对象上使用find()方法,以batch_size为参数。但是无论我尝试什么,游标总是返回我集合中的所有文档。
我的代码的一个基本片段如下所示(该集合有超过 10K 的文档):
import pymongo as pm
client = pm.MongoClient()
coll = client.get_database('db').get_collection('coll')
cur = coll.find({}, batch_size=500)
但是,游标总是立即返回完整的集合大小。我正在按照文档中的描述使用它。
有谁知道我如何正确地批量迭代集合?有多种方法可以遍历 find() 方法的输出,但这仍会首先获取完整集合,并且只会遍历内存中已拉取的文档。batch_size 参数应该每次都获取一个批次并往返于服务器,以节省内存空间。
Cats萌萌
不负相思意
相关分类