mongo命令行下去除重复的数据

  很久没有写博客了,前段时间才换了工做,一直很忙,抽不出时间来写,当时暗下决心要每周至少写一篇,记录本身工做中踩过的坑和掌握的一些技巧,但天天要忙的事太多了,还要花时间学习其余的新知识,因此博客的事就抛到脑后了。html

  今天写了个爬虫,发现数据有问题,一查才发现,有些数据重复了,我用的数据库是mongo3.2版本的,因而上网查了下,怎么删除mongo重复的数据,结果是查到了,可是个人数据库达到百万条,命令处理不了,报错了,因而又去网上查了一下解决方案,最后终于搞定了。python

  如今我总结一下在大数据下mongo怎么去重的数据库

db.cps_goods.aggregate([
    {
        $group: { _id: {product_url: '$product_url'},count: {$sum: 1},dups: {$addToSet: '$_id'}}
    },
    {
        $match: {count: {$gt: 1}}
    }
],{
         allowDiskUse: true
     }).forEach(function(doc){
    doc.dups.shift();
    db.cps_goods.remove({_id: {$in: doc.dups}});
})

  关键是 allowDiskUse: true 这个,加上这个就不会出错了学习

 

参考博文:大数据

 
有什么不对的欢迎评论留言,谢谢
相关文章
相关标签/搜索