Mongo DB并发findAndModify与增量操作

时间:2016-08-29 07:39:11

标签: mongodb

如果两个代理在Mongo集群上同时运行此更新查询,那么updateVersion的期望值是什么?

db.Task.findAndModify(
    {
        query:{"updateVersion":21},
        update:{$inc:{"updateVersion":1}}
    }
);

如果答案是“23”,是否有办法保证读/写同步操作?

1 个答案:

答案 0 :(得分:0)

MongoDB有关于并发操作的FAQ section

在您的情况下,write conflict可能会发生,但MongoDB仍尝试执行这两个命令:

  

两种并发操作(其中至少一种是写入)尝试以违反使用乐观并发控制的存储引擎施加的约束的方式使用资源的情况。 MongoDB将透明地中止并重试其中一个冲突操作。