javascript - 在 MongoDB 的原生 NodeJS 驱动中,什么时候使用 MongoClient 构造函数,什么时候使用 Db 构造函数?
MongoClient 和 Db 构造函数在手册中有描述。你什么时候应该使用一个,什么时候应该使用另一个?
答案#1
通常应该优先使用 MongoClient,唯一的主要问题是它比较新(1.2 及以上版本)。
让我们引用手册:
MongoClient 或如何以一种新的更好的方式连接
从驱动版本 1.2 开始,我们引入了一个新的连接类,在我们所有官方驱动中都具有相同的名称。这是为了确保我们所有的 API 都呈现出一个可识别的界面。这并不意味着您的现有应用程序会出错,而是我们鼓励您使用新的连接 API 来简化应用程序开发。
此外,我们正在创建的新连接类 MongoClient 会确认对 MongoDB 的所有写入操作,这与现有的连接类 Db 不同,后者已关闭确认。
因此,两个最大的变化是 MongoClient 承认对数据库的所有写入,以及在连接中实际选择数据库的时间。
使用 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();
});
