返回顶部

一缕半夏微光

温柔半两,从容一生

导航

在Navicat Premium里给MongoDB数据库的集合去掉重复的数据

一、查重语句:

1 db.data.aggregate([
2     {
3         $group: { _id: {ip: '$ip',time: '$time',day:'$day',traffic:'$traffic',type:'$type',id:'$id'},count: {$sum: 1},dups: {$addToSet: '$_id'}}
4     },
5     {
6         $match: {count: {$gt: 1}}
7     }
8 ])

可以发现里面有重复的数据:(上面的db.data.aggregate中的data为需要查重的集合)

二、查重后对重复的数据进行删除操作

语句:

 1 db.data.aggregate([
 2     {
 3         $group: { _id: {ip: '$ip',time: '$time',day:'$day',traffic:'$traffic',type:'$type',id:'$id'},count: {$sum: 1},dups: {$addToSet: '$_id'}}
 4     },
 5     {
 6         $match: {count: {$gt: 1}}
 7     }
 8 ]).forEach(function(doc){
 9     doc.dups.shift();
10     db.data.remove({_id: {$in: doc.dups}});
11 })

效果:

然后再检验一下是否全部将重复的数据删除了,就把第一步的语句重新运行一遍就知道了

无重复的数据,说明已经将重复的数据删除完毕!

posted on 2021-11-07 11:56  一缕半夏微光  阅读(747)  评论(0编辑  收藏  举报