mongo命令行下去除重复的数据
好久没有写博客了,前段时间才换了工作,一直很忙,抽不出时间来写,当时暗下决心要每周至少写一篇,记录自己工作中踩过的坑和掌握的一些技巧,但每天要忙的事太多了,还要花时间学习其他的新知识,所以博客的事就抛到脑后了。
今天写了个爬虫,发现数据有问题,一查才发现,有些数据重复了,我用的数据库是mongo3.2版本的,于是上网查了下,怎么删除mongo重复的数据,结果是查到了,但是我的数据库达到百万条,命令处理不了,报错了,于是又去网上查了一下解决方案,最后终于搞定了。
现在我总结一下在大数据下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 这个,加上这个就不会出错了
参考博文:
有什么不对的欢迎评论留言,谢谢