sql >> Base de Datos >  >> NoSQL >> MongoDB

mongo 3 duplicados en índice único - dropDups

dropDupes ahora está en desuso desde la versión 2.7.5 porque no era posible predecir correctamente qué documento se eliminaría en el proceso.

Por lo general, tiene 2 opciones:

  1. Usar una nueva colección:

    • Crear una nueva colección,
    • Cree el índice único en esta nueva colección,
    • Ejecute un lote para copiar todos los documentos de la colección anterior a la nueva y asegúrese de ignorar el error de clave duplicada durante el proceso.
  2. Manéjalo en tu propia colección manualmente:

    • asegúrese de no insertar más documentos duplicados en su código,
    • ejecute un lote en su colección para eliminar los duplicados (y asegúrese de conservar el bueno si no son completamente idénticos),
    • luego agregue el índice único.

Para tu caso particular, te recomendaría la primera opción pero con un truco:

  • Crear una nueva colección con índice único,
  • Actualice su código para que ahora inserte documentos en ambos mesas,
  • Ejecute un lote para copiar todos los documentos de la colección anterior a la nueva (ignore el error de clave duplicada),
  • cambie el nombre de la nueva colección para que coincida con el nombre anterior.
  • actualiza tu código para que ahora escribas solo en la colección "antigua"