gpt4 book ai didi

mongodb - 在 mongodb 中的索引列上查找重复项的快速方法

转载 作者:IT老高 更新时间:2023-10-28 13:05:41 30 4
gpt4 key购买 nike

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

最佳答案

我个人发现,在大型数据库(1TB 或更多)上,接受的答案非常慢。聚合要快得多。示例如下:

db.places.aggregate(
{ $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
{ $match : { total : { $gte : 2 } } },
{ $sort : {total : -1} },
{ $limit : 5 }
);

它搜索 extra_info.id 被使用两次或多次的文档,按给定字段的降序对结果进行排序并打印它的前 5 个值。

关于mongodb - 在 mongodb 中的索引列上查找重复项的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4224773/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com