Python中Mongodb批量插入的限制

4

在PyMongo中,批量插入文档的数量是否有限制?我指的不是MongoDB文档大小的16mb限制,而是通过Python批量插入的文档列表实际大小。

1个回答

10

使用 pymongo 进行批量插入文档数量没有限制。根据 文档,您可以向 collection.insert 提供一个可迭代对象。

insert each document in the iterable, sending only a single command to the server

重点在于pymongo会尝试通过向mongodb服务器发送一个单一的消息来执行插入操作。

Mongodb本身有消息大小限制(maxMessageSizeBytes),该限制等于48000000字节(maxBsonObjectSize * 3)。

因此,pymongo客户端驱动程序应负责将大型消息拆分为较小的消息以适应mongodb的最大大小限制。但是,实际上它尚未实现。详见:

目前,您需要自行处理此情况。

希望这可以帮助到您。


2
该功能已经添加。如果您没有看到改进,请确保更新pymongopip install --upgrade pymongo - earthmeLon
1
不幸的是,它仍然从可迭代对象中获取所有文档,然后在将它们分成多个块发送之前,如果您有例如生成器,可以产生数百万个对象,它会在发送它们之前将所有内容加载到内存中。 - bfontaine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接