db.open和db.connect有什么区别?

时间:2013-12-09 09:37:01

标签: node.js mongodb

在我制作NodeJS HTTP服务器的冒险中,我从下面的代码开始。该服务器应该能够处理大约10,000个请求,这些请求都发生在同一秒或两秒内。

我想知道db.opendb.connect之间究竟有什么区别。 docs分别表示“初始化数据库连接”和“连接到数据库”,但这对我来说似乎是一回事。此外,他们都使用db.close()来关闭连接。我应该使用一个吗?

var server = http.createServer(function (req, res) {

     req.on('data', function(chunk) {
          //Do some stuff here
     });

     req.on('end', function() {
          //Do some stuff here
          var db = new Db('test', new Server("111.111.11.111", 27017,{auto_reconnect: false}), {safe: true});  

          db.open(function(err, db) {
               //Insert data into DB
               db.close();
          });
     });
}); //End Http server

1 个答案:

答案 0 :(得分:2)

首先尝试从请求中取出数据库连接,并将其保留为每个应用1。当所有客户想要结束他们的请求时,使用10k连接来混搭数据库不是一个好主意。据我所知,数据库连接池有限,所以这就是你的瓶颈和错误的原因。不幸的是,我现在无法给出这个好榜样。

至于“db.connect”和“db.open”差异主要在代码使用方面。更准确地说,这里是connectopen,正如您所看到的,连接正在使用连接字符串,其中open使用new DB,需要new Server声明才能工作。

哦,还有一件事,尝试使用更高级别的库进行mongoDB连接,例如mongoose(我不能以“很好的方式”粘贴链接,所以这里是:mongoosejs.com)