sql >> Database >  >> NoSQL >> MongoDB

Verwijder duplicaat in MongoDB

Ja, dropDups is voorgoed verdwenen. Maar je kunt zeker je doel bereiken met een beetje moeite.

Je moet eerst alle dubbele rijen vinden en dan alle behalve eerst verwijderen.

db.dups.aggregate([{$group:{_id:"$contact_id", dups:{$push:"$_id"}, count: {$sum: 1}}},
{$match:{count: {$gt: 1}}}
]).forEach(function(doc){
  doc.dups.shift();
  db.dups.remove({_id : {$in: doc.dups}});
});

Zoals je ziet doc.dups.shift() verwijdert eerst _id uit de array en verwijder vervolgens alle documenten met de resterende _ids in de dups-array.

script hierboven verwijdert alle dubbele documenten.



  1. mongodb kon geen verbinding maken met de server

  2. Hoe het .bson-bestandsformaat op mongodb te importeren

  3. Mongoose / MongoDB $addToSet-functionaliteit gebruiken op een reeks objecten

  4. Vind documenten met arrays die geen document bevatten met een bepaalde veldwaarde in MongoDB