在MongoDB的本机NodeJS Driver中,何时使用MongoClient构造函数以及何时使用Db构造函数?

时间:2013-07-25 23:01:01

标签: javascript node.js mongodb

manual中描述了MongoClient和Db构造函数。什么时候应该使用另一个?何时应该使用另一个?

1 个答案:

答案 0 :(得分:7)

MongoClient通常应该是首选,唯一的主要问题是它更新(1.2 +)。

让我们引用the manual:

  

MongoClient或如何以全新且更好的方式进行连接

     

从驱动程序版本1.2开始,我们引入了一个新的连接类   我们所有官方司机的名字相同。这是为了确保这一点   我们为所有API提供了一个可识别的前端。这并不意味着   您现有的应用程序将破坏,而不是我们   鼓励您使用新的连接api来简化您的   应用程序开发。

     

此外,我们正在建立新的连接类MongoClient确认对MongoDB的所有写入,与已关闭确认的现有连接类Db形成对比。

因此,两个最大的变化是MongoClient确认对DB的所有写入以及在连接中选择实际数据库的事实。

使用MongoClient:

var MongoClient = require('mongodb').MongoClient
  , Server = require('mongodb').Server;

var mongoClient = new MongoClient(new Server('localhost', 27017));
mongoClient.open(function(err, mongoClient) {
  var db1 = mongoClient.db("mydb"); // The DB is set here

  mongoClient.close();
});

vs Db:

// db is selected in the next line, unlike with MongoClient and most drivers to other databases
var db = new Db('test', new Server('locahost', 27017)); 
// Establish connection to db
db.open(function(err, db) {
  assert.equal(null, err);

  db.on('close', test.done.bind(test));
  db.close();
});