1. 程式人生 > >使用mogondb指令碼去重多個欄位

使用mogondb指令碼去重多個欄位

(1)命令

(先建立一個新表,新增好需要去重的欄位並且值設定成唯一的,再重新匯入資料,利用mogondb資料庫的非關係型即可解決了)

 

/*伺服器後臺執行 1)先備份資料;A_BAS_TEST 為例;批量指令碼*/

mongoexport --db mapEditor -u admin -p safety123 --collection A_BAS_TEST --out /map/data/A_BAS_TEST.json

 

/*前臺執行 2)清除已有資料,建立關鍵字的索引;批量指令碼*/

db.A_BAS_TEST.remove({});

db.getCollection("A_BAS_TEST").createIndex({ "tag.ADDRESS": 1, "tag.HEALTHORGNAME": 1 }, { "unique": true });

 

/*伺服器後臺執行 3)重新匯入資料,關鍵字去重;批量指令碼*/

mongoimport --db mapEditor -u admin -p safety123 --collection A_BAS_TEST  /map/data/A_BAS_TEST.json

 

(2)指令碼

Mogon指令碼

db.collection.aggregate([

    {$group: { _id:{name:"$tag.SHELTERNAME",address:"$tag.ADDRESS"}, total : { $sum : 1},dups: {$addToSet: '$_id'}}},     //分組

{$match: { total:{"$gt":1}}},         //篩選

//需要顯示的欄位

    {$project: {

        _id :1,

        totol:{$districe:["$total",1]}

        type:"type"

    }},

    {$group: { _id:{type:"$type"}, num : { $sum : "$total"}}}

],{ allowDiskUse: true })

//{ allowDiskUse: true }   開通磁碟(解決管道限制問題)

3)使用java指令碼連結mogon資料庫進行解決