DBAtlas · 데이터베이스 운영 아틀라스

E11000: E11000 duplicate key error collection

MongoDB

의미

삽입 또는 갱신이 unique index로 보호되는 필드에 컬렉션에 이미 존재하는 값을 쓰려고 했다. MongoDB가 중복 키를 거부한다.

원인

_id 충돌, unique index가 있는 필드에 같은 값을 두 번째로 기록, upsert 중 경쟁 조건, 또는 unique index(비 sparse 인덱스)에서 여러 문서의 null 값 충돌.

해결 방법

쓰기 전에 문서 존재 여부를 확인하거나 upsert를 사용한다: db.collection.updateOne(filter, {$set:{...}}, {upsert:true}). 오류 메시지의 인덱스 이름과 dup key 값을 확인한다. 고유성이 실제로 필요하지 않다면 인덱스를 삭제하고, null이 문제라면 partial/sparse 인덱스를 사용한다. 애플리케이션에서 오류를 잡아 재시도하거나 사용자에게 알린다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목