MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Supprimer le doublon dans MongoDB

Oui, dropDups est parti pour de bon. Mais vous pouvez certainement atteindre votre objectif avec peu d'effort.

Vous devez d'abord rechercher toutes les lignes en double, puis supprimer toutes sauf la première.

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

Comme vous le voyez doc.dups.shift() supprimera le premier _id du tableau, puis supprimez tous les documents avec les _ids restants dans le tableau dups.

script ci-dessus supprimera tous les documents en double.