使用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数据库进行解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值