MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose - causé par ::11000 E11000 index d'erreur de clé en double ?

Vous aviez initialement un champ appelé name dans votre schéma, qui a été défini sur unique .

Comment puis-je savoir? À cause de l'erreur qui me le dit :

duplicate key error index: **iotdb.users.$name_1**

Vous avez renommé le champ en username , mais n'a pas supprimé l'ancien index. Par défaut, MongoDB définira la valeur d'un champ inexistant sur null dans ce cas.

Documentation pertinente ici :

Si un document n'a pas de valeur pour le champ indexé dans un index unique, l'index stockera une valeur nulle pour ce document. En raison de la contrainte unique, MongoDB n'autorisera qu'un seul document sans champ indexé.

Pour résoudre ce problème, vous devez supprimer l'index du name renommé champ.