很久沒有寫博客了,前段時間才換了工做,一直很忙,抽不出時間來寫,當時暗下決心要每週至少寫一篇,記錄本身工做中踩過的坑和掌握的一些技巧,但天天要忙的事太多了,還要花時間學習其餘的新知識,因此博客的事就拋到腦後了。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 這個,加上這個就不會出錯了學習
參考博文:大數據