假设我有两个集合A和B.在我的C#程序中,我正在尝试从中获取数据。目前,我首先从集合A获取数据,然后将文档保存到容器中。然后从集合B中获取数据。但从理论上讲,数据可能会在从A获得之后和从B获取之前发生更改。因此我得到的结果不正确。有安全的方法吗?
答案 0 :(得分:4)
Mongodb不支持交易。因为mongodb被设计为可伸缩的(这意味着分片,复制),并且分布式事务可能非常昂贵并且通常使数据库变慢。因此,您无法阻止集合A进行写入,而您可以从B
加载/更新它mongodb中存在某种交易 - 单个文档上的atomic updates。因此,您可以在不加载文档的情况下更新部分文档。
答案 1 :(得分:0)
虽然Mongo没有明确支持像SQL系统这样的锁定表,但您可能需要查看fsync
函数。如果我正确地阅读文档,您应该能够将其用作黑客来暂时阻止数据写入。