MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come posso eliminare i duplicati in MongoDb?

È probabile che MongoDB lo stia facendo per difendersi. Se dropDups nel campo sbagliato, potresti ripulire l'intero set di dati e bloccare il DB con operazioni di eliminazione (che sono "costose" come le scritture).

Quindi la prima domanda è perché stai creando un indice univoco su id campo?

MongoDB crea un _id predefinito campo che è automaticamente univoco e indicizzato. Per impostazione predefinita MongoDB popola il _id con un ObjectId , tuttavia, puoi sovrascriverlo con il valore che preferisci. Quindi, se disponi di un set pronto di valori ID, puoi utilizzarli .

Se non riesci a reimportare i valori, copiali in una nuova raccolta mentre modifichi id in _id . È quindi possibile eliminare la vecchia raccolta e rinominare la nuova. (nota che otterrai un sacco di "errori di chiave duplicata", assicurati che il tuo codice li catturi e li ignori )