次のエラーが発生するまで、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()
デシベル.テスト.検証()