Tengo una colección de md5 en mongodb. Me gustaría encontrar todos los duplicados. La columna md5 está indexada. ¿Conoces alguna forma rápida de hacer eso usando map reduce. ¿O debería simplemente iterar sobre todos los registros y buscar duplicados manualmente?Forma rápida de encontrar duplicados en la columna indexada en mongodb
Mi enfoque actual utilizando MapReduce itera sobre la colección casi el doble (suponiendo que no es muy pequeña cantidad de duplicados):
res = db.files.mapReduce(
function() {
emit(this.md5, 1);
},
function (key, vals) {
return Array.sum(vals);
}
)
db[res.result].find({value: {$gte:1}}).forEach(
function (obj) {
out.duplicates.insert(obj)
});
No puedo usar gruping porque está limitado a 10k elementos (tengo 3M). Pero la nota de que MR devolverá solo los datos del índice es interesante. No lo sabía. ¡Gracias! (+1) –