Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
在web环境中高效地使用MongoDB_Mongodb_Mongodb .net Driver - Fatal编程技术网

在web环境中高效地使用MongoDB

在web环境中高效地使用MongoDB,mongodb,mongodb-.net-driver,Mongodb,Mongodb .net Driver,我是从NHibernate的背景接触MongoDB的,我想知道在web环境中高效使用MongoDB的最佳实践是什么 使用NHibernate,我为应用程序的生命周期创建一个ISessionFactory,然后为每个请求使用一个ISession实例。以下面的代码为例(我希望它是典型的,如果不理想,请更正) 我通常会为每个应用程序或每个请求提供一个Mongo类的实例吗?var db呢?或者,当我需要DB交互时,我会使用下面的所有代码吗 更新:我正在使用mongodb csharp(尽管如果存在,请建

我是从NHibernate的背景接触MongoDB的,我想知道在web环境中高效使用MongoDB的最佳实践是什么

使用NHibernate,我为应用程序的生命周期创建一个ISessionFactory,然后为每个请求使用一个ISession实例。以下面的代码为例(我希望它是典型的,如果不理想,请更正)

我通常会为每个应用程序或每个请求提供一个
Mongo
类的实例吗?var db呢?或者,当我需要DB交互时,我会使用下面的所有代码吗

更新:我正在使用mongodb csharp(尽管如果存在,请建议更好的替代方案)

谢谢

using (var mongo = new Mongo())
{
    mongo.Connect();

    var db = mongo.GetDatabase("mydb");

    var mongoCollection = db.GetCollection("mycollection");

    var document = new Document(Guid.NewGuid().ToString(), new
                                                    {
                                                        x = 1,
                                                        y = 2
                                                    });

    mongoCollection.Insert(document);
}

每个驱动程序通常都有某种形式的持久连接或连接池。我不确定您使用的是哪种语言/驱动程序,但请检查文档中的连接池

另外,当运行
Mongo.connect()
时,通常会有连接字符串(
mongodb://user:pwd@主机:port/db
),这将减少代码行数,让您直接进入集合

此外,通常不需要使用GUID。Mongo驱动程序通常提供特定于Mongo的某种形式的“MongoID”。此外,默认行为是在没有ID的情况下为您创建ID


除此之外,我将详细介绍您的驱动程序/库,因为它们略有不同。

使用mongodb csharp时,您将其视为ADO连接。 创建Mongo对象时,它会从池中借用一个连接,直到释放为止,该池是它所拥有的。因此,在使用块之后,连接将返回到池中。 创建Mongo对象既便宜又快捷

示例

for(var i=0;i<100;i++) 
{ 
        using(var mongo1 = new Mongo()) 
        using(var mongo2 = new Mongo()) 
        { 
                mongo1.Connect(); 
                mongo2.Connect(); 
        } 
} 

for(var i=0;您使用Norm还是mongodb csharp?请添加标签!