MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongo 3 Duplikate auf eindeutigem Index - dropDups

Ja dropDupes ist nun seit Version 2.7.5 veraltet, da nicht korrekt vorhergesagt werden konnte, welches Dokument dabei gelöscht wird.

Normalerweise haben Sie zwei Möglichkeiten:

  1. Verwenden Sie eine neue Sammlung :

    • Erstellen Sie eine neue Sammlung
    • Erstellen Sie den eindeutigen Index für diese neue Sammlung
    • Führen Sie einen Stapel aus, um alle Dokumente aus der alten Sammlung in die neue zu kopieren, und stellen Sie sicher, dass Sie den Fehler wegen doppelter Schlüssel während des Vorgangs ignorieren.
  2. Behandeln Sie es manuell in Ihrer eigenen Sammlung :

    • Stellen Sie sicher, dass Sie keine weiteren doppelten Dokumente in Ihren Code einfügen,
    • Führen Sie einen Batch für Ihre Sammlung aus, um die Duplikate zu löschen (und stellen Sie sicher, dass Sie die gute behalten, wenn sie nicht vollständig identisch sind),
    • Fügen Sie dann den eindeutigen Index hinzu.

Für Ihren speziellen Fall würde ich die erste Option empfehlen aber mit einem Trick :

  • Erstellen Sie eine neue Sammlung mit eindeutigem Index
  • Aktualisieren Sie Ihren Code, sodass Sie jetzt Dokumente in beide einfügen Tabellen,
  • Führen Sie einen Stapel aus, um alle Dokumente aus der alten Sammlung in die neue zu kopieren (Fehler durch doppelten Schlüssel ignorieren),
  • Benennen Sie die neue Sammlung um, damit sie mit dem alten Namen übereinstimmt.
  • Aktualisieren Sie Ihren Code erneut, sodass Sie jetzt nur noch in die "alte" Sammlung schreiben