sql >> Base de Datos >  >> NoSQL >> MongoDB

Eliminar duplicados en MongoDB

Sí, dropDups se ha ido para siempre. Pero definitivamente puedes lograr tu objetivo con un poco de esfuerzo.

Primero debe encontrar todas las filas duplicadas y luego eliminar todas excepto la primera.

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

Como ves doc.dups.shift() eliminará el primer _id de la matriz y luego elimine todos los documentos con _id restantes en la matriz dups.

el script anterior eliminará todos los documentos duplicados.