E11000 duplicate key error
MongoDBで一意インデックスに違反するドキュメントを挿入した場合に発生
概要
E11000 duplicate key errorは、MongoDBで一意インデックス(unique index)が設定されたフィールドに重複する値を挿入しようとした場合に発生します。
エラーメッセージ
E11000 duplicate key error collection: mydb.users index: email_1 dup key: { email: "john@example.com" }
原因
- 重複データの挿入: 既に存在する値を挿入
- _idの重複: 同じ_idを持つドキュメントを挿入
- 一意インデックスの後付け: 既存データに重複がある状態でインデックス作成
解決策
1. upsertを使用
| |
2. insertManyでordered: falseを使用
| |
3. bulkWriteでエラーハンドリング
| |
4. findOneAndUpdateで安全に処理
| |
5. 既存の重複を確認してからインデックス作成
| |
MongoDB の他のエラー
この記事は役に立ちましたか?