Mongodb 如何在nosql中为更新操作维护数据一致性?

Mongodb 如何在nosql中为更新操作维护数据一致性?,mongodb,database,Mongodb,Database,例如,我们有一个如下表 car_id, car_name, car_status, engine 100, car1, running, A 200, car2, stop, B 业务逻辑是,当car_状态正在运行时,无法更新引擎 最明显的步骤是 检查状态是否正在运行 如果状态未运行,则更新 问题是,在步骤1和步骤2之间的时间内,可能有人将状态更改为“正在运行” 如何在RDBMS和mongo中防止这种情况发生?我认为您只需要在应用程序中保留一种更新汽

例如,我们有一个如下表

car_id, car_name, car_status, engine
100,    car1,     running,    A
200,   car2,     stop,       B
业务逻辑是,当car_状态正在运行时,无法更新引擎

最明显的步骤是

  • 检查状态是否正在运行
  • 如果状态未运行,则更新
  • 问题是,在步骤1和步骤2之间的时间内,可能有人将状态更改为“正在运行”


    如何在RDBMS和mongo中防止这种情况发生?

    我认为您只需要在应用程序中保留一种更新汽车状态的方法,并将该功能作为更新汽车状态的唯一方法公开(您可以在数据库中创建一个对该表或集合具有写入权限的用户,这将迫使您始终仅使用该用户id来运行此更新操作,当然,这在从应用程序执行更新操作时也适用。)

    RDBMS和mongo是什么意思?您是在询问mongo还是关系数据库?