gpt4 book ai didi

c# - MongoDB C# 驱动程序和线程安全

转载 作者:IT老高 更新时间:2023-10-28 13:10:26 24 4
gpt4 key购买 nike

MongoClient 的文档中, MongoServer , MongoDatabaseMongoCollection<T>我看到据说它们是线程安全的。

问题:这是否意味着我可以(例如)在一个类中拥有它们的静态字段并从任何 Task 访问它们?/Thread ?

喜欢:

public static MongoClient Client = new MongoClient(Properties.Settings.Default.MongoConnStr);
public static MongoServer Server = Client.GetServer();
public static MongoDatabase DraftDB = Server.GetDatabase("draftdb");
public static MongoCollection<MyDoc> Docs = Program.DraftDB.GetCollection<Location>("mydocs");

特别是关于 MongoCollection<T> ;我想确定var cursor = Docs.Find(query).SetLimit(50);不对 MongoCollection<T> 执行突变(准确地说是静态)。

最佳答案

来自 this page你知道 MongoServer、MongoDatabase、MongoClient、MongoCollection 和 MongoGridFS 是线程安全的。 MongoCursor 特别不是线程安全的。

这意味着您可以安全地从多个任务中访问它们,而不必担心改变它们的“状态” - 但是您仍然需要注意如何设置或更改它们的值。

具体到您的问题,查询集合(返回游标对象)不会改变 MongoCollection 对象。

关于c# - MongoDB C# 驱动程序和线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17131639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com