findAndModify是否有效锁定文档以防止读取冲突?

Agu*_*ama 8 mongodb mongodb-query findandmodify

假设有如下文档的结构:
{_id:"session-01", status:"free"}

并且有两个并发操作执行以下findAndModify操作: db.collection.findAndModify({query:{status:"free"}, update:{status:"occupied"}, new:true})

我想要实现的只有一个操作可以获得"空闲"操作,并对其执行锁定,因此其他操作必须为空.那是findAndModify的作用吗?

vmr*_*vmr 7

根据官方文档,MongoDB确实提供了独立的更新和返回.
这是mongoDB官方文档链接:为什么findAndModify是Atomic.
以下是findAndModify 如何在mongoDB中工作的一个极好的例子:findAndModify如何工作

注意 - 我通常不喜欢发布链接,但我不想诋毁内容所有者.

  • 第二个链接的解释让我更有信心。谢谢你的回答:D (2认同)