Pymongo 几个星期都做得很好,直到我遇到以下错误:
回溯(最近一次通话最后):
文件“main.py”,第 14 行,在
主要的()
文件“main.py”,第 11 行,在 main
下载器.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 行,插入
continue_on_error,self.__uuid_subtype),安全)
_send_message 中的文件“/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py”,第 852 行
rv = self.__check_response_to_last_error(response)
文件“/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py”,第 793 行,在 __check_response_to_last_error
引发 DuplicateKeyError(详细信息 [“错误”])
pymongo.errors.DuplicateKeyError: E11000 重复键错误索引:test.eurostatdata.$_id_ dup key: { : ObjectId('50fd056757b924675af21a0e') }
_id 绝对不是该领域之一。我一直都是靠mongodb生成自己的_id,所以以前从来没有遇到过这种问题。
插入代码:
文件 = []
对于 split_table_data 中的键:
文件 = ele
文档["title"] = ele["title"]
文档["table_data"] = split_table_data[key]
文档[“cols”] = colsHeader
文档[“字幕”] = 键
文件。附加(文件)
self.base.insert(文档)
我使用最新的 pymongo 包和最新的 mongodb。
唯一可能导致这种情况的是我试图插入一个超过大小限制的文档。
我努力了
db.repairDatabase()
db.test.validate()