sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose - orsakad av ::11000 E11000 duplicate key error index?

Du hade från början ett fält som hette name i ditt schema, som var satt till unique .

Hur vet jag? På grund av felet att berätta det för mig:

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

Du bytte namn på fältet till username , men tog inte bort det gamla indexet. Som standard kommer MongoDB att ställa in värdet på ett icke-existerande fält till null i så fall.

Relevant dokumentation här:

Om ett dokument inte har ett värde för det indexerade fältet i ett unikt index, kommer indexet att lagra ett nollvärde för detta dokument. På grund av den unika begränsningen kommer MongoDB endast att tillåta ett dokument som saknar det indexerade fältet.

För att lösa detta måste du ta bort indexet för det omdöpta name fältet.



  1. Mongoose-uppdatering utan återuppringning

  2. UUID-förkortning

  3. Kan inte autentisera på mongodb med PHP

  4. En översikt över databasdriftsrapportering i ClusterControl