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

Hvordan kan jeg slette dubletter i MongoDb?

MongoDB gør sandsynligvis dette for at forsvare sig selv. Hvis du dropDups på det forkerte felt kunne du spole hele datasættet og låse DB'en ned med sletteoperationer (som er "så dyre" som man skriver).

Så det første spørgsmål er, hvorfor opretter du et unikt indeks på id felt?

MongoDB opretter en standard _id felt, der automatisk er unikt og indekseret. Som standard udfylder MongoDB _id med et ObjectId , dog kan du tilsidesætte dette med den værdi, du kan lide. Så hvis du har et klar sæt id-værdier, kan du bruge dem .

Hvis du ikke kan genimportere værdierne, så kopier dem til en ny samling, mens du ændrer id ind i _id . Du kan derefter droppe den gamle samling og omdøbe den nye. (bemærk, at du vil få en masse "duplikatnøglefejl", sørg for at din kode fanger og ignorerer dem )



  1. Django Selleri kan ikke forespørge postgres db inde i opgaven

  2. Kører flere forespørgsler i mongo`

  3. Spark til MongoDB via Mesos

  4. Skift mellem Mongo-produktion og testdatabase - Java Spring Boot