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

Mongodb findAndModify是否有效地锁定文档以防止读取冲突?,mongodb,mongodb-query,findandmodify,Mongodb,Mongodb Query,Findandmodify,假设有如下文档结构: {u id:“session-01”,状态:“free”} 下面有两个并发操作执行find和modify操作: db.collection.findAndModify({query:{status:“free”},update:{status:“occulated”},new:true}) 我想要实现的是,只有一个操作可以获得“free”一个,并对其执行锁定,因此另一个操作必须为null。findAndModify就是这样做的吗?根据官方文件,MongoDB确实提供独立的更

假设有如下文档结构:
{u id:“session-01”,状态:“free”}

下面有两个并发操作执行
find和modify
操作:
db.collection.findAndModify({query:{status:“free”},update:{status:“occulated”},new:true})


我想要实现的是,只有一个操作可以获得“free”一个,并对其执行锁定,因此另一个操作必须为null。findAndModify就是这样做的吗?

根据官方文件,MongoDB确实提供独立的更新和返回。
这是mongoDB官方文档链接:。
下面是一个演示FindModify如何在mongoDB中工作的极好示例:


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

第二个链接的解释让我更有信心。谢谢你的回答:D@vmr那么OP的理解是正确的?在并发操作中,其他人将不接收数据?