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

Fjern dublet i MongoDB

Ja, dropDups er væk for altid. Men du kan helt sikkert nå dit mål med en lille smule indsats.

Du skal først finde alle dublerede rækker og derefter fjerne alle undtagen først.

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}});
});

Som du ser doc.dups.shift() vil fjerne første _id fra array og fjern derefter alle dokumenter med resterende _id'er i dups array.

scriptet ovenfor vil fjerne alle duplikerede dokumenter.



  1. hvordan man har relationer mange til mange i redis

  2. mine redis-nøgler udløber ikke

  3. JSON.NET cast-fejl ved serialisering af Mongo ObjectId

  4. Pymongo / MongoDB:oprette indeks eller sikre indeks?