mongodb C#查询没有';没有回应

本文关键字:回应 mongodb 查询 | 更新日期: 2023-09-27 17:57:27

我正试图从mongodb Server中获取Item,有时它会工作,4-5次后尝试在最后一行停止重新排序(我无法从查询中取出对象)以前有人吃过吗?取出物体的正确方法是什么?

            var client = new MongoClient(connectionString);
            var server = client.GetServer();
            var database = server.GetDatabase("myPlaces");
            var collection = database.GetCollection<MongoPlace>("Places");  
            int startDay =  int.Parse(Request.QueryString["day"]);
            MongoPlace mp = collection.AsQueryable<MongoPlace>().Where(x => x.guid == 
                            Request.QueryString["id"]).FirstOrDefault();

mongodb C#查询没有';没有回应

很可能达到了默认的连接池限制。

因为这看起来像是一个web应用程序,所以每个web应用程序实例打开客户端的次数不应该超过一次。

MongoClientMongoServerMongoDatabaseMongoCollection都是线程安全的,并且通常每个都应该只有一个实例。(有关详细信息,请参阅此处)。

您可能希望在应用程序启动时执行此操作,然后静态地维护连接,直到应用程序退出。

在我的ASP.NET MVC应用程序中,我通常添加一个"DatabaseConfig"类,该类的调用方式与其他应用程序配置相同。举个例子,我在目前使用MongoDB构建的项目中得到了一些代码(目前还没有任何错误处理):

var client = new MongoClient(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
var server = client.GetServer();
DataLayer.Client = client;
DataLayer.Server = server;
var settings = new MongoDatabaseSettings(server, "default");            
settings.WriteConcern = WriteConcern.Acknowledged;
DataLayer.Database = DataLayer.GetDatabase(settings);

然后,在Application_Start中,我调用一个包含上面代码的Initialize方法。

DatabaseConfig.Initialize();