如何获取数据从两个集合在一个查询mongodb数据库

本文关键字:一个 查询 数据库 mongodb 集合 何获取 获取 数据 两个 | 更新日期: 2023-09-27 18:11:44

假设我有两个集合A和b。在我的c#程序中,我试图从中获取数据。目前,我首先从集合A中获取数据,并将文档保存到容器中。然后从集合b中获取数据,但是从理论上讲,在从A中获取数据之后,在从b中获取数据之前,数据可能会发生变化,从而得到不正确的结果。有安全的方法吗?

如何获取数据从两个集合在一个查询mongodb数据库

Mongodb不支持事务。由于mongodb被设计为可扩展的(这意味着分片,复制),分布式事务可能非常昂贵,并且通常会使数据库变慢。所以你不能阻塞集合A的写,当你得到/更新它,从b加载

mongodb中有一些事务——它是单个文档的原子更新。所以你可以在不加载的情况下更新部分文档

虽然Mongo不像SQL系统那样显式支持锁表,但您可能想看看fsync函数。如果我没看错文档的话,你应该可以用它来临时阻止数据写入。

http://www.mongodb.org/display/DOCS/fsync +命令