Python pymongo经常出现重复的错误

Python pymongo经常出现重复的错误,python,mongodb,pymongo,Python,Mongodb,Pymongo,Pymongo在几周内一直表现良好,直到我遇到以下错误: Traceback (most recent call last): File "main.py", line 14, in main() File "main.py", line 11, in main downloader.process() File "/mnt/vdisk/crawler/eurostat/downloader.py", line 25, in

Pymongo在几周内一直表现良好,直到我遇到以下错误:

Traceback (most recent call last): File "main.py", line 14, in main() File "main.py", line 11, in main downloader.process() File "/mnt/vdisk/crawler/eurostat/downloader.py", line 25, in process self.processHelper() File "/mnt/vdisk/crawler/eurostat/downloader.py", line 61, in processHelper self.base.insert(documents) File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 359, in insert continue_on_error, self.__uuid_subtype), safe) File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 852, in _send_message rv = self.__check_response_to_last_error(response) File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 793, in __check_response_to_last_error raise DuplicateKeyError(details["err"]) pymongo.errors.DuplicateKeyError: E11000 duplicate key error index: test.eurostatdata.$_id_ dup key: { : ObjectId('50fd056757b924675af21a0e') } 回溯(最近一次呼叫最后一次): 文件“main.py”,第14行,在 main() 文件“main.py”,第11行,在main中 downloader.process() 文件“/mnt/vdisk/crawler/eurostat/downloader.py”,第25行,正在处理中 self.processHelper() 文件“/mnt/vdisk/crawler/eurostat/downloader.py”,第61行,在processHelper中 self.base.insert(文档) 文件“/usr/local/lib/python2.7/dist packages/pymongo/collection.py”,第359行,插入 继续(错误,自我。子类型,安全) 文件“/usr/local/lib/python2.7/dist packages/pymongo/mongo_client.py”,第852行,在发送消息中 rv=自身。检查响应到最后一个错误(响应) 文件“/usr/local/lib/python2.7/dist packages/pymongo/mongo_client.py”,第793行,在“检查”和“响应”到“最后一次”错误中 引发重复密钥错误(详细信息[“err”]) pymongo.errors.DuplicateKeyError:E11000重复键错误索引:test.eurostatdata.$\u id_uudup键:{:ObjectId('50fd056757b924675af21a0e')} _我绝对不是这个领域的一员。我总是依赖mongodb生成自己的id,所以我以前从未遇到过这种问题

插入代码:

documents = [] for key in split_table_data: document = ele document["title"] = ele["title"] document["table_data"] = split_table_data[key] document["cols"] = colsHeader document["subTitles"] = key documents.append(document) self.base.insert(documents) 文件=[] 对于拆分表格数据中的键: 文件=ele 文件[“标题”]=ele[“标题”] 文档[“表格数据”]=拆分表格数据[键] 文档[“cols”]=colsHeader 文档[“字幕”]=键 文档。追加(文档) self.base.insert(文档) 我使用最新的pymongo包和最新的mongodb

唯一可能导致这种情况的原因是我试图插入一个超过大小限制的文档

我试过了

db.repairDatabase()

db.test.validate()


ele
变量中有什么?我想这是您的问题:
ele
变量已经有了_idkey,如果它是从DB获得的。这是哪个版本?2.2.0?ele没有_id键,因为它是从xml源读入的。我已经仔细检查了elegregor中不存在_id密钥,MongoDB是2.2.0您能出示您的方案文件吗?