У меня есть коллекция md5 в mongodb. Я бы хотел найти все дубликаты. Столбец md5 индексируется. Знаете ли вы быстрый способ сделать это с помощью уменьшения карты. Или я должен просто перебирать все записи и проверять наличие дубликатов вручную?
Мой текущий подход с использованием карты уменьшает итерацию по коллекции почти в два раза (при условии, что имеется очень небольшое количество дубликатов):
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)
});