bulkinsert - 批量插入时,MongoDb中的对等错误导致连接重置

标签 bulkinsert pymongo

我试图通过在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
我环顾四周,发现here发生这种情况是因为插入的文档的大小超过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字典转换为BSON文档。
我的MongoDB版本是2.0.6,而pymongo版本是2.2.1
编辑
我可以批量插入150个文档,这没问题,但是超过150个文档会出现此错误

最佳答案

Bulk Inserts bug已解决,但您可能需要更新pymongo版本:
pip install --upgrade pymongo

关于bulkinsert - 批量插入时,MongoDb中的对等错误导致连接重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11498631/

相关文章:

c# - CosmosDb SDK v3 是否在批量插入时自动重试?

sql - 如何在 SQL Server 2005 中插入一组值?

java - 禁用MongoDB中的主键索引并在批量插入后启用它?

python - 具有完整行对象的 Mongo Distinct Query

python - 是否可以在 Google App Engine 中使用 PyMongo?

python - 如何使用 PyMongo 删除 MongoDB 数据库?

c# - 如何将 CSV 文件批量插入 SQLite C#

python - 如何在 pymongo 中检查该项目不在列表字段中?

mongodb - 单个 MongoDB 查询聚合计数