gpt4 book ai didi

mongodb - 我应该什么时候打开和关闭 MongoDB 连接?

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

总的来说,我对 MongoDB 和 NoSQL 非常陌生,我刚刚开始使用 MongoDB/Norm/ASP.NET MVC 3 构建一个站点。

我想知道我应该如何确定与 Mongo 数据库的连接范围。

现在我有一个实例化 MongoSession 和 onActionExecuted 的 Basecontroller,我将其处理掉,因此我所有的派生 Controller 都可以访问我的 MongoSession。 MongoSession 类在其构造函数中打开一个连接并将其释放到 Dispose() 上,这就是它目前的工作方式。

private IMongo _mongo;

public MongoSession()
{
_mongo = Mongo.Create("connString");
}

public void Dispose()
{
_mongo.Dispose();
}

我有点担心如果我还在 Controller 中做其他事情,它可能会保持连接打开太久。

这种方法是否足以避免打开太多连接的风险,或者我应该做一些更像下面的示例方法的事情?

   public void Add<T>(T item) where T : class, new()
{
using (var mongo = Mongo.Create("connString"))
{
mongo.GetCollection<T>().Insert(item);
}
}

另一个后续问题是:

是否通过 Norm “昂贵”的操作打开和关闭 MongoDB 连接?

最佳答案

我会让连接保持打开状态,因为重新创建连接的成本很高。 Mongo 很好,有很多连接,可以打开很长时间。理想情况下,您应该做的是与应用程序的所有部分共享连接作为持久连接。 C# 驱动程序本身应该足够聪明,这样它就不会创建太多连接,因为它在内部使用“连接池”,甚至可以重用连接。文档说:“到服务器的连接在后台自动处理(使用连接池来提高效率)。”

干杯,德里克

关于mongodb - 我应该什么时候打开和关闭 MongoDB 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9172360/

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