原文链接
(18条消息) MongoDB百万级数据去重_不会编程的小猿的博客-优快云博客
查询重复项
原集合
mongo查询语句
// 集合名称
db.result_msgv1_copy1.aggregate([
{
//重复字段
$group:{_id:{send_date: "$send_date", GliderID_Irid: "$GliderID_Irid"},count:{$sum:1}}
},
{
$match:{count:{$gt:1}}
}
],{allowDiskUse:true})
运行结果
删除重复项
mongo去重语句
// 集合名称
db.result_msgv1_copy1.aggregate([
{
//重复字段,send_date + GliderID_Irid 都重复
$group:{_id: {send_date: "$send_date", GliderID_Irid: "$GliderID_Irid"},count:{$sum:1},dups:{$addToSet:'$_id'}}//若重复则把_id加入dups数组
},
{
$match: {count: {$gt: 1}}
}
],{allowDiskUse: true}).forEach( //循环删除_id对应的数据
function(doc){
doc.dups.shift();
//集合名称
db.result_msgv1_copy1.remove(
{
_id: {
$in: doc.dups
}
}
);
}
)
运行结果