sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik duplicaten in MongoDb verwijderen?

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 )



  1. InsertMany Document in een MongoDB-verzameling met behulp van C # BsonArray

  2. MongoDB:schemamigratie, update of invoegen

  3. Migratie van Tokumx 1.5 naar Percona Server voor mongodb 3.11

  4. Mongo-aggregatie:waarden in groepen verdelen