Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Mongo 文档讨论产生锁的查询以避免阻塞其他操作。Mongo 是否会产生从读取到写入的锁来改变读取结果?
假设我有文档{x:1}, {x:2}, {x:2}, {x:1}并且正在阅读find({x:2})。假设第四个文档不在工作集中,所以 Mongo 页面错误,将update({x:1}, {x:2}, {multi: true})锁交给find. 该查找现在将包括第四个文档,但省略了第一个文档。Monogo 是这样工作的吗?
{x:1}, {x:2}, {x:2}, {x:1}
find({x:2})
update({x:1}, {x:2}, {multi: true})
find
在 MongoDB 中,不能保证查询隔离 - 事实上,跨多个文档,不能保证您查看的是同一时间点。
你所描述的绝对可能发生,它确实发生了。批量获取大量文档的多文档查询也是如此(当您使用游标时)。当您为下一批发出 getmore 时,不能保证数据的状态与您获得上一批结果时相同。