【发布时间】:2010-11-19 12:05:06
【问题描述】:
我在 mongodb 中有一个 md5 集合。我想找到所有重复项。 md5 列已编入索引。您知道使用 map reduce 的任何快速方法吗? 还是应该只遍历所有记录并手动检查重复项?
我目前使用 map reduce 的方法几乎两次迭代集合(假设有非常少量的重复项):
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)
});
【问题讨论】:
-
OP,请考虑将接受的答案更改为 @expert 的。更简洁更高效