È 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 )