【问题标题】:MongoDB Query interrupted when processing bulk records处理批量记录时 MongoDB 查询中断
【发布时间】:2018-09-17 20:56:56
【问题描述】:

当我在批量记录上运行的 Mongodb 查询因系统或 nodeJS 应用服务器突然断电或突然断电而中断时会发生什么? 如果事件造成的损害如何回滚?

【问题讨论】:

  • 你是如何批量处理记录的?
  • 我正在使用 _id 查找记录,然后使用值更新它们。例如:db.getCollection("records").update({_id: ObjectId},{$set:{property:value}},{multi:true})
  • 您使用的是 MongoDB 4.0 吗?你在使用分片集群吗?
  • 没有。这是使用默认 MongoDB 设置的基本查询。
  • 基本上我想通过回滚之前的查询或者在mongodb服务器再次启动后完成处理来防止部分数据更新到数据库中。

标签: node.js mongodb


【解决方案1】:

如果您运行的是 MongoDB 4.0 而不是在分片环境中,您可以使用事务,这样您将获得全有或全无的效果。

https://docs.mongodb.com/master/core/transactions/

这很简单:

  • 创建会话
  • 开始交易
  • 工作
  • 提交事务

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 2020-11-08
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    相关资源
    最近更新 更多