Esta respuesta está obsoleta : los dropDups
La opción se eliminó en MongoDB 3.0, por lo que se requerirá un enfoque diferente en la mayoría de los casos. Por ejemplo, podría usar la agregación como se sugiere en:Documentos duplicados de MongoDB incluso después de agregar una clave única.
Si está seguro de que source_references.key
identifica registros duplicados, puede garantizar un índice único con dropDups:true
opción de creación de índice en MongoDB 2.6 o anterior:
db.things.ensureIndex({'source_references.key' : 1}, {unique : true, dropDups : true})
Esto mantendrá el primer documento único para cada source_references.key
y elimine cualquier documento subsiguiente que, de otro modo, provocaría una infracción de clave duplicada.
Nota importante :Cualquier documento al que le falte source_references.key
se considerará que el campo tiene un nulo valor, por lo que los documentos subsiguientes que no tengan el campo clave se eliminarán. Puede agregar sparse:true
opción de creación de índice para que el índice solo se aplique a documentos con una source_references.key
campo.
Precaución obvia :Realice una copia de seguridad de su base de datos y pruébelo primero en un entorno provisional si le preocupa la pérdida de datos no deseada.