pymongo で一括挿入を実行して 500 個のドキュメントを挿入しようとしていますが、このエラーが発生します
File "/usr/lib64/python2.6/site-packages/pymongo/collection.py", line 306, in insert
continue_on_error, self.__uuid_subtype), safe)
File "/usr/lib64/python2.6/site-packages/pymongo/connection.py", line 748, in _send_message
raise AutoReconnect(str(e))
pymongo.errors.AutoReconnect: [Errno 104] Connection reset by peer
私は周りを見回して、挿入されたドキュメントのサイズが16 MBを超えるためにこれが発生することを発見しました.500ドキュメントのサイズは16 MBを超えるはずです. だから私はこのような500のドキュメント(python辞書)のサイズのサイズをチェックしました
size=0
for dict in dicts:
size+=dict.__sizeof__()
print size
これは私に与えます502920
。これは 500 KB のようなものです。16 MB 未満です。次に、なぜこのエラーが発生するのですか。BSONドキュメントではなくPython辞書のサイズを計算していて、MongoDBはBSONドキュメントを取り込んでいますが、500KBを16+ MBに変えることはできません。さらに、python dict を BSON ドキュメントに変換する方法がわかりません。
私のMongoDBのバージョンは2.0.6で、pymongoのバージョンは2.2.1です
編集 150 個のドキュメントで一括挿入を行うことができますが、それは問題ありませんが、150 個を超えるドキュメントではこのエラーが表示されます