DBAtlas · Atlas d'exploitation des bases de données

E11000: E11000 duplicate key error collection (erreur de clé en double dans la collection)

MongoDB

Que signifie cette erreur ?

Une insertion ou une mise à jour a tenté d'écrire, dans un ou plusieurs champs protégés par un index unique, une valeur qui existe déjà dans la collection. MongoDB rejette la clé en double.

Cause

Collision de _id, écriture de la même valeur une seconde fois dans un champ doté d'un index unique, condition de concurrence (race condition) lors d'un upsert, ou valeurs null en collision pour plusieurs documents dans un index unique (index non sparse).

Comment la corriger

Vérifiez si le document existe avant l'écriture, ou utilisez un upsert : db.collection.updateOne(filter, {$set:{...}}, {upsert:true}). Consultez le nom de l'index et la valeur dup key dans le message d'erreur. Si l'unicité n'est pas réellement requise, supprimez l'index ; si les null posent problème, utilisez un index partiel/sparse. Dans l'application, interceptez l'erreur et relancez l'opération ou signalez-la à l'utilisateur.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur