次のエラーが発生するまで、Pymongo は何週間も問題なく動作していました。
トレースバック (最新の呼び出しが最後):
ファイル「main.py」の 14 行目
主要()
メインのファイル「main.py」、11行目
ダウンローダ.プロセス()
ファイル「/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)、セーフ)
ファイル "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py"、852 行目、_send_message 内
rv = self.__check_response_to_last_error(応答)
ファイル "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py"、793 行目、__check_response_to_last_error 内
Raise DuplicateKeyError(details["err"])
pymongo.errors.DuplicateKeyError: E11000 重複キー エラー インデックス: test.eurostatdata.$_id_ dup key: { : ObjectId('50fd056757b924675af21a0e') }
_id は間違いなくフィールドの 1 つではありませんでした。私は常に mongodb に依存して独自の _id を生成しているため、この種の問題はこれまで一度もありませんでした。
挿入コード:
ドキュメント = []
split_table_data のキー:
ドキュメント = エレ
ドキュメント["タイトル"] = ele["タイトル"]
document["table_data"] = split_table_data[キー]
document["cols"] = colsHeader
document["subTitles"] = キー
documents.append(ドキュメント)
self.base.insert(ドキュメント)
最新の pymongo パッケージと最新の mongodb を使用しています。
これを引き起こした可能性のある唯一のことは、サイズ制限を超えるドキュメントを挿入しようとしたことです.
私が試してみました
デシベル.repairDatabase()
デシベル.テスト.検証()