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

Lei*_*mon 6 javascript mongodb node.js

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

Ben*_*aum 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();
});
Run Code Online (Sandbox Code Playgroud)

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();
});
Run Code Online (Sandbox Code Playgroud)