mongoDB及mysql的去重语句最近使⽤mongoDB⽤到数据去重,⾃⼰学习了⼀下,记录下结果。
mongodb和mysql结合使⽤mongoDB的可视化⼯具robo 3T,选择需要去重的表,例如:
去重语句如下:
//后的内容为注解,使⽤时删除
{
$group:{
'_id':'$id',
//'_id'作为标识,任意取,但是推荐和表字段对应,便于⽐较。 //'$id'代表需要去重的字段
'uniqueIds':{'$addToSet': '$_id'},
//代表主键,后⾯重复词条就是根据唯⼀主键删除,
//uniqueIds是标识
'count':{'$sum':1}
/
/按照$id进⾏group分组,获得相应的数量$sum
}
},
{
$match:{'count':{'$gt':1}}
//匹配count,数量>1的都要删除去重
}
).forEach(function(doc){
//遍历
doc.uniqueIds.shift();
//根据主键删除
})
前半句也可⽤于判断是否有重复
{
$group:{
'_id':'$id',
'uniqueIds':{'$addToSet': '$_id'},
'count':{'$sum':1}
}
},
{
$match:{'count':{'$gt':1}}
})
⽐较简单,直接写语句
SELECT COUNT(*) FROM `codig_rel.soft_patent` GROUP BY id
DELETE
FROM
`codig_rel.soft_patent`
WHERE
id IN (
(SELECT * FROM (SELECT
id
FROM
`codig_rel.soft_patent`
GROUP BY
id
HAVING
COUNT(id) > 1) a)
)
ps:在⼯作中,对于表数据的处理之前,⼀定要记得备份,避免重⼤损失。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论