2013-05-25 121 views

回答

9

通過pymongo進行批量插入的文檔沒有限制。按照docs,你可以到collection.insert提供一個可迭代,這將

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

這裏的關鍵點是,pymongo將嘗試通過發送一個單message到MongoDB服務器做您的插入。

Mongodb本身具有消息大小限制(maxMessageSizeBytes),即等於48000000字節(maxBsonObjectSize * 3)。

因此,pymongo客戶端驅動程序應該負責將您的大消息拆分爲更小的消息以適應mongodb最大大小限制。但是,實際上它還沒有實施。請參閱:

現在,你必須自己處理這種情況。

希望有所幫助。

+2

此功能已添加。如果您沒有看到改進,請務必更新** pymongo **:'pip install --upgrade pymongo' – earthmeLon

+1

不幸的是,它仍然會在發送它們之前從您的迭代中獲取所有文檔,因此如果您有這樣的文檔。一個生成數百萬個對象的生成器,它會在以多個塊發送它們之前將所有內容加載到內存中。 – bfontaine