javascript - Ve vlastním NodeJS ovladači MongoDB, kdy použít konstruktor MongoClient a kdy použít konstruktor Db?
Konstruktory MongoClient a Db jsou popsány v manuálu. Kdy byste měli použít jeden a kdy byste měli použít druhý?
Odpověď č. 1
Obvykle by měl být preferován MongoClient, jediným hlavním problémem je, že je novější (1.2+).
Citujme manuál:
MongoClient nebo jak se připojit novým a lepším způsobem
Od verze ovladače 1.2 zavádíme novou třídu připojení, která má stejný název ve všech našich oficiálních ovladačích. Cílem je zajistit, aby všechny naše API měla jednotnou a dobře rozpoznatelnou podobu. To neznamená, že vaše stávající aplikace přestane fungovat, ale spíše vás vybízíme k použití nového API připojení, aby se zjednodušil vývoj vaší aplikace.
Dále vytváříme novou třídu připojení MongoClient, která potvrzuje všechny zápisy do MongoDB, na rozdíl od stávající třídy připojení Db, která má potvrzení vypnuta.
Dvě největší změny jsou tedy skutečnost, že MongoClient potvrzuje všechny zápisy do databáze a kdy je ve spojení vybrána samotná databáze.
S MongoClientem:
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 s 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();
});
