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

mongo 3 dubletter på unikt indeks - dropDups

Ja dropDupes er nu forældet siden version 2.7.5, fordi det ikke var muligt at forudsige korrekt, hvilket dokument der ville blive slettet i processen.

Typisk har du 2 muligheder:

  1. Brug en ny samling :

    • Opret en ny samling,
    • Opret det unikke indeks på denne nye samling,
    • Kør en batch for at kopiere alle dokumenter fra den gamle samling til den nye, og sørg for, at du ignorerer duplikeret nøglefejl under processen.
  2. Håndter det manuelt i din egen samling :

    • sørg for, at du ikke vil indsætte flere duplikerede dokumenter i din kode,
    • kør en batch på din samling for at slette dubletterne (og sørg for at beholde den gode, hvis de ikke er helt identiske),
    • tilføj derefter det unikke indeks.

Til dit særlige tilfælde vil jeg anbefale den første mulighed men med et trick :

  • Opret en ny samling med unikt indeks,
  • Opdater din kode, så du nu indsætter dokumenter i begge tabeller,
  • Kør en batch for at kopiere alle dokumenter fra den gamle samling til den nye (ignorer duplikeret nøglefejl),
  • omdøb den nye samling, så den matcher det gamle navn.
  • genopdater din kode, så du nu kun skriver i den "gamle" samling


  1. En oversigt over MongoDB Atlas:Anden del

  2. Tvinger anvendelse af et 2dsphere-indeks på et mongoose-skema placeringsfeltet til at være påkrævet?

  3. Introduktion til Redis datastrukturer:sæt

  4. grænser for antallet af samlinger i databaser