In so vielen einführende Beispiele für die Verwendung MongoDB, sehen Sie Code wie folgt:Keeping öffnen Sie eine MongoDB Datenbankverbindung
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:port/adatabase", function(err, db)
{
/* Some operation... CRUD, etc. */
db.close();
});
Wenn MongoDB wie jede andere Datenbanksystem ist, open
und close
Operationen sind in der Regel teuer zeitweise .
Also, meine Frage ist: Ist OK es einfach einmal die MongoClient.connect("...
tun, weisen Sie den zurück db
Wert zu einem gewissen Modul global, haben verschiedene Funktionen im Modul tun verschiedene Datenbank-bezogene Arbeit (insert Dokumente in Sammlungen, update Dokumente usw.), wenn sie von anderen Teilen der Anwendung aufgerufen werden (und damit den Wert db
wiederverwenden) und dann, wenn die Anwendung fertig ist, erst dann die close
.
Mit anderen Worten, open
und close
sind einmal durchgeführt - nicht jedes Mal, wenn Sie gehen müssen und einige Datenbank-bezogene Operation zu tun. Und Sie verwenden dieses db
Objekt, das während der ursprünglichen open\connect
zurückgegeben wurde, immer wieder, nur um es am Ende mit der close
zu entsorgen, wenn Sie tatsächlich mit all Ihren datenbankbezogenen Arbeiten fertig sind.
Offensichtlich, da alle E/A ist asynch, vor der close
Sie würden sicherstellen, dass die letzte Datenbankoperation vor der Ausgabe der close
abgeschlossen. Scheint so, als ob das in Ordnung sein sollte, aber ich wollte es nochmal überprüfen, falls ich etwas vermisse, da ich neu bei MongoDB bin. Vielen Dank!
Überprüfen Sie auch [diese] (http://stackoverflow.com/questions/14495975/why-its-recommended-not-to-close-any-mongodb-connection-anywhere-in-node-js-code), kann Ihnen helfen –
Interessant .... Ja, hilfreich; vielen Dank! – Lew