Nosql Mongodb 并发控制之乐观锁

前端之家收集整理的这篇文章主要介绍了Nosql Mongodb 并发控制之乐观锁前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们知道sql中并发控制采用的乐观锁就是在记录中增加版本号或timestamp,那么mongodb中如何实现呢?

Mongodb不善于处理事务,但提供了findAndModify命令。该命令允许对文档进行原子性更新,并在同一次调用中返回:
代码如如:

db.collection_yown.findAndModify(
    {
      query:{"name":"yown"},update:{"version":2},new:true or false
    }
)

update和findAndModify都可以用做更新操作;
区别 :
findAndModify是有返回值的,输出中的value字段即返回修改之前的文档,使用 new:true选项返回修改后的文档。 update是更新操作,是没有返回值的。
findAndModify 强调操作的原子性(atomically),比如用来实现自增1的操作或者操作队列。属于 get-and-set 式的操作,一般来讲,findAndModify 比update操作稍慢,因为需要等待数据库的响应。
另外findAndModify ,其中modify可以是update,还可以是remove

{
findAndModify: <string>,query: <document>,sort: <document>,remove: <boolean>,update: <document>,new: <boolean>,fields: <document>,upsert: <boolean>
} 

猜你在找的NoSQL相关文章