使用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資料庫進行解決