MongoDB doet dit waarschijnlijk om zichzelf te verdedigen. Als je dropDups
in het verkeerde veld zou je de hele dataset kunnen afspuiten en de DB kunnen vergrendelen met verwijderbewerkingen (die "zo duur" zijn als schrijven).
Dus de eerste vraag is waarom maak je een unieke index op de id
veld?
MongoDB maakt een standaard _id
veld dat automatisch uniek is en geïndexeerd. Standaard vult MongoDB de _id
met een ObjectId
, u kunt dit echter overschrijven met elke gewenste waarde. Dus als je een kant-en-klare set ID-waarden hebt, kun je die gebruiken .
Als u de waarden niet opnieuw kunt importeren, kopieer ze dan naar een nieuwe verzameling terwijl u id
wijzigt in _id
. U kunt dan de oude verzameling verwijderen en de nieuwe naam wijzigen. (houd er rekening mee dat u een aantal "duplicate key errors" krijgt, zorg ervoor dat uw code ze opvangt en negeert )