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 這個,加上這個就不會出錯了學習

 

參考博文:大數據

 
有什麼不對的歡迎評論留言,謝謝
相關文章
相關標籤/搜索