javascript - En el controlador nativo de NodeJS de MongoDB, ¿cuándo usar el constructor MongoClient y cuándo usar el constructor Db?
Los constructores MongoClient y Db están descritos en el manual. ¿Cuándo deberías usar uno y cuándo deberías usar el otro?
Respuesta #1
Normalmente se debería preferir MongoClient, el único problema importante es que es más reciente (1.2+).
Citemos el manual:
MongoClient o cómo conectarse de una manera nueva y mejor
A partir de la versión 1.2 del controlador, introducimos una nueva Clase de conexión que tiene el mismo nombre en todos nuestros controladores oficiales. Esto es para asegurar que presentemos una interfaz reconocible para todas nuestras API. Esto no significa que su aplicación existente se rompa, sino que más bien le animamos a que use la nueva API de conexión para simplificar el desarrollo de su aplicación.
Además, estamos haciendo que la nueva clase de conexión MongoClient reconozca todas las escrituras en MongoDB, en contraste con la clase de conexión existente Db que tiene las confirmaciones desactivadas.
Los dos mayores cambios son, por lo tanto, el hecho de que MongoClient reconoce todas las escrituras en la base de datos y cuándo se elige la base de datos real en la conexión.
Con 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 con 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();
});
