Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在mongo db中通过一个查询从两个集合中获取数据?_C#_.net_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# 如何在mongo db中通过一个查询从两个集合中获取数据?

C# 如何在mongo db中通过一个查询从两个集合中获取数据?,c#,.net,mongodb,mongodb-.net-driver,C#,.net,Mongodb,Mongodb .net Driver,假设我有两个集合A和B。在我的C#程序中,我试图从中获取数据。目前,我首先从集合A获取数据,然后将文档保存到一个容器中。然后从集合B中获取数据。但从理论上讲,从A中获取数据后,在从B中获取数据前,数据可能会发生变化。因此,我得到的结果不正确。有安全的方法吗?虽然Mongo不像SQL系统那样明确支持锁定表,但您可能想看看fsync函数。如果我正确地阅读了文档,您应该能够将其用作临时防止数据写入的黑客 Mongodb不支持事务。由于mongodb的设计是可伸缩的(这意味着分片、复制),分布式事务通常

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

虽然Mongo不像SQL系统那样明确支持锁定表,但您可能想看看
fsync
函数。如果我正确地阅读了文档,您应该能够将其用作临时防止数据写入的黑客


Mongodb不支持事务。由于mongodb的设计是可伸缩的(这意味着分片、复制),分布式事务通常会非常昂贵,并且会使数据库速度变慢。因此,在获取/更新从B加载的集合A时,不能阻止集合A的写入

mongodb中有一些事务——它在单个文档上。因此,您可以在不加载文档的情况下更新文档的一部分