6

MongoClient 和 Db 构造函数在手册中进行了描述。什么时候应该使用一个,什么时候应该使用另一个?

4

1 回答 1

7

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

让我们引用手册:

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();
});

与 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();
});
于 2013-07-25T23:04:07.390 回答