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

Rimuovi il duplicato in MongoDB

Sì, dropDups è sparito per sempre. Ma puoi sicuramente raggiungere il tuo obiettivo con un piccolo sforzo.

Devi prima trovare tutte le righe duplicate e poi rimuoverle tutte tranne prima.

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

Come vedi doc.dups.shift() rimuoverà prima _id dall'array e quindi rimuovere tutti i documenti con gli _id rimanenti nell'array dups.

lo script sopra rimuoverà tutti i documenti duplicati.