Mongodb pymongo中的默认批处理大小是多少?

Mongodb pymongo中的默认批处理大小是多少?,mongodb,pymongo,Mongodb,Pymongo,我使用pymongo在一个查询中获取大约200万个文档,每个文档只包含三个字符串字段。查询只是一个简单的find(),没有任何限制()或batchSize() 在遍历游标时,我注意到脚本在处理大约25k个文档后等待了大约30~40秒 所以我想知道mongo是否一批返回所有2M结果?pymongo中的默认batchSize()是多少?MongoDB中的光标默认返回最多101个文档,或者足够返回1MB的文档。调用在弹出4MB后通过光标进行迭代。返回的文档数量取决于文档的大小: 光标批处理 Mongo

我使用pymongo在一个查询中获取大约200万个文档,每个文档只包含三个字符串字段。查询只是一个简单的find(),没有任何限制()或batchSize()

在遍历游标时,我注意到脚本在处理大约25k个文档后等待了大约30~40秒


所以我想知道mongo是否一批返回所有2M结果?pymongo中的默认batchSize()是多少?

MongoDB中的光标默认返回最多101个文档,或者足够返回1MB的文档。调用在弹出4MB后通过光标进行迭代。返回的文档数量取决于文档的大小:

光标批处理

MongoDB服务器批量返回查询结果。批量大小 不会超过BSON文档的最大大小。对于大多数查询 第一批返回101个文档或刚好足够超过1个文档 兆字节后续批处理大小为4 MB。覆盖 批次的默认大小,请参见batchSize()和limit()

对于包含不带索引的排序操作的查询,服务器 必须加载内存中的所有文档才能执行排序并将 返回第一批中的所有文档

当您遍历游标并到达返回的 批处理,如果有更多结果,cursor.next()将执行getmore 操作以检索下一批

您可以在pymongo中的游标上使用batch_size()方法覆盖默认值-但是它不会超过16 MB(BSON文档的最大大小):

批量大小(批量大小)

限制一批中返回的文档数。每批 需要往返到服务器。可以对其进行调整以优化 性能和限制数据传输

批量大小不能覆盖MongoDB的内部数量限制 它将在单个批中返回到客户端的数据(即,如果您设置 批量大小为1000000000,MongoDB当前仅返回4-16MB 每个批次的结果)

如果批处理大小不是整数,则引发TypeError。如果发生错误,则引发ValueError 批处理大小小于0。如果此光标已被删除,则引发InvalidOperation 已经用过了。应用于此光标的最后一批大小为 优先。 参数:

批次大小:请求的每批结果的大小


batch\u size:请求的每批结果的大小。
以KBs、MBs或文档数表示的批大小?@akki文档数。是否有方法手动覆盖Mongo端的默认限制?我是指mongo的内部最大批量配置。