我正在尝试通过在 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。那我为什么会收到这个错误。我知道我正在计算 python 字典而不是 BSON 文档的大小,而 MongoDB 接受 BSON 文档,但不能将 500KB 变成 16+ MB。此外,我不知道如何将 python dict 转换为 BSON 文档。
我的 MongoDB 版本是 2.0.6,pymongo 版本是 2.2.1
编辑 我可以使用 150 个文档进行批量插入,这很好,但是超过 150 个文档会出现此错误