一次误删数据的经历(Mongodb)

一次误删数据的经历(Mongodb)

操作背景

之前mongodb数据的id都是通过md5码生成,但有一次代码中漏了一点逻辑,导致按照默认方式生成了id,ObjectId("···")格式的,基于id统一原则,需要将这部分默认生成的id全部删除掉,然后我按照id逆序的方式进行查询

db.weilong.find({}).sort({"_id":-1})

然后这部分默认生成的id就会排到最前面,由于总数有点多,大概有两千多条,于是我采用了limit限制个数的方式,我先查询试了一下limit查出的内容,然后将find修改为remove,此时悲剧就发生了,数据表中全部数据都被删掉了。

处理方法

索性之前进行了数据备份

mongodump -h xx.xx.xx.xx:27017 -u weilong -p 123456 -d weilong -o ./mongodump

但无奈恢复需要root权限,任凭我在本地怎么mongorestore

mongorestore -h xx.xx.xx.xx:27017 -d weilong --dir .\mongodump\weilong

error reading database: not authorized on weilong to execute command { listCollections: 1, cursor: { batchSize: 0 } }

心态崩了,还好不是线上问题,测试服数据,最后将备份好的bson文件发给了运维大哥,运维直接在服务器上边进行了数据恢复,这才解决了自己闯下的祸。

反思

吃一堑、长一智,有些问题你不亲身感受过是不会有很深的感受,就像人生一样,从小到大听过的很多大道理都慢慢灵验了,但有多少人听过,只有亲自经历过才知道这个东西到底是什么样子的,所以成长的路还很长,要想茁壮,必先成长。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值