mongodb删除亿级数据

mongodb删除亿级数据

我们的数据是这样的,我们取前10条
> db.device_state.find().limit(10)
{ "_id" : NumberLong(200000), "_class" : "com.iot.device.model.DeviceState", "deviceId" : "5799edd59da13a2c62b5108a6d78e201", "propertyName" : "Tamper", "propertyValue" : "1", "productId" : NumberLong(183), "logDate" : ISODate("2019-10-31T13:50:00.078Z"), "tenantId" : NumberLong(2) }


写脚本分批删除数据
mongo --port 30000 -u admin -p 123456  iot_db_control device_log_delete.js 

cat device_log_delete.js

try{
        for (var i = 7000000 ; i <= 15000000; i +=30000){
                print("delete_id: "+ i);
                db.device_log.deleteMany({"_id":{$lte : i , $gte : i-30000}})
                sleep (2000);
                };

        }

catch (e) {
        print(e);
}

根据负载,sleep时间可以调整

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值