javascript - I MongoDBs native NodeJS-driver, hvornår skal man bruge MongoClient-konstruktøren, og hvornår skal man bruge Db-konstruktøren?
MongoClient- og Db-konstruktørerne er beskrevet i manualen. Hvornår skal du bruge den ene, og hvornår skal du bruge den anden?
Svar #1
MongoClient bør normalt foretrækkes, det eneste store problem er, at det er nyere (1.2+).
Lad os citere manualen:
MongoClient eller hvordan man forbinder på en ny og bedre måde
Fra driver version 1.2 introducerer vi en ny forbindelsesklasse, der har det samme navn på tværs af alle vores officielle drivere. Dette er for at sikre, at vi præsenterer et genkendeligt ansigt for alle vores API’er. Dette betyder ikke, at din eksisterende applikation vil gå i stykker, men snarere at vi opfordrer dig til at bruge den nye forbindelses-API for at forenkle udviklingen af din applikation.
Desuden laver vi den nye forbindelsesklasse MongoClient, der bekræfter alle skriverier til MongoDB, i modsætning til den eksisterende forbindelsesklasse Db, hvor bekræftelser er slået fra.
De to største ændringer er således det faktum, at MongoClient anerkender alle skriverier til databasen, og hvornår den faktiske database vælges i forbindelsen.
Med 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 med 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();
});
