sql >> Databáze >  >> NoSQL >> MongoDB

Odstraňte duplicitní záznamy z mongodb 4.0

Duplicitní záznamy můžete seskupit pomocí agregačního kanálu:

db.theCollection.aggregate([
   {$group: {_id: {item: "$item", qty: "$qty", size: "$size", status: "$status"}}},
   {$project: {_id: 0, item: "$_id.item", qty: "$_id.qty", size: "$_id.size", status: "$_id.status"}},
   {$out: "theCollectionWithoutDuplicates"}
])

Po provedení agregačního kanálu se theCollectionWithoutDuplicates kolekce obsahuje dokument pro každou skupinu původních duplicitních dokumentů s novým _id - můžete ověřit výstup odstraněním původní kolekce (db.theCollection.drop() ) a přejmenujte novou kolekci (db.theCollectionWithoutDuplicates.renameCollection('theCollection') ). Přetažení a přejmenování lze kombinovat v db.theCollectionWithoutDuplicates.renameCollection('theCollection', true) .

VYSVĚTLENÍ použití agregačního kanálu:

  1. db.theCollection.aggregate([]) provede agregační kanál a obdrží seznam fází agregace, které mají být provedeny
  2. skupina $group fáze seskupuje dokument podle polí určených jako následující _id pole
  3. $project fáze mění názvy polí, zplošťuje vnořené _id vnořené dokumenty vytvořené $group
  4. $out stage ukládá agregované výsledné dokumenty do dané kolekce


  1. Jak importovat soubor JSON do MongoDB pomocí Pythonu

  2. Když se pokusím použít Hibernate ogm a jarní spouštění, konzola zobrazí Chybu Nelze vytvořit instanci pojmenované strategie

  3. Jak efektivně vyřešit problém související s mongoDB?

  4. Ověření po výběru databáze