2013-05-25 4 views
3

PyMongo로 대량 삽입 할 수있는 문서 수에 제한이 있습니까? 그리고 MongoDB의 문서 크기는 16MB로 제한되어있는 것이 아니라 Python을 통해 대량으로 삽입하고자하는 문서 목록의 실제 크기를 의미합니다.Python에서 Mongodb 대량 삽입 제한

답변

9

pymongo를 통한 벌크 삽입 문서의 번호에는 제한이 없습니다. docs에 따르면, 당신은 collection.insert에 반복자를 제공 할 수 있으며, 여기

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

중요한 점은 pymongo가 MongoDB를 서버에 하나의 message를 전송하여 삽입을 수행하려고 할 것입니다 것입니다.

Mongodb 자체에는 메시지 크기 제한 (maxMessageSizeBytes)이 있으며 48000000 바이트 (maxBsonObjectSize * 3)와 같습니다.

따라서 pymongo 클라이언트 드라이버는 큰 메시지를 mongodb 최대 크기 제한에 맞게 작은 메시지로 분할해야합니다. 그러나 실제로 아직 구현되지 않았습니다. 참조 : 지금은 https://jira.mongodb.org/browse/PYTHON-419

https://jira.mongodb.org/browse/PYTHON-414

    • , 당신은 자신이이 상황을 처리해야합니다.

      희망이 있습니다.

  • +2

    이 기능이 추가되었습니다. ** pip install --upgrade pymongo' – earthmeLon

    +1

    안타깝게도 여전히 iterable에서 모든 문서를 가져옵니다. 예를 들어 있다면 그것을 보내기 전에 iterable에서 가져옵니다. 수백만 개의 객체를 생성하는 생성기는 여러 개의 청크로 보내기 전에 모든 것을 메모리에로드합니다. – bfontaine