原文链接

(18条消息) MongoDB百万级数据去重_不会编程的小猿的博客-CSDN博客

查询重复项

原集合

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

运行结果

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐