nodejs 中是否需要关闭 mongodb 连接?

Is it necessary to close mongodb connection in nodejs?

我是 nodejs 的新手 mongodb。在 mongodb 本机驱动程序网站中,他们会在每次请求后关闭连接,但在高流量网站中似乎非常缓慢且存在问题。我只是想知道是否有必要这样做,或者我可以声明一个全局变量并将其引用到数据库,如下所示:

var mongodbClient = require('mongodb').MongoClient;
var db;

function connect() {
    mongodbClient.connect('connection string', function (err, mdb) {
        db = mdb;
    });
}

connect();

function insert(query, collection, fn) {
    db.collection(collection)
        .insert(query, function (er, da) {
        fn(er, da);
    });
}

function find(query, collection, fn) {
    db.collection(collection)
        .find(query).toArray(function (er, da) {
        fn(er, da);
    });
}

我不想使用 mongoose,我更喜欢学习和理解引擎盖下发生的事情。

文档中提供的示例实际上并不适合现实生活中的用例。如果您使用的是服务器框架,您通常可以连接到 mongo 并在整个应用程序中共享对连接的引用。我使用 hapi 并通过插件连接到服务器,该插件允许我存储句柄以打开连接。这允许您在服务器关闭时进行清理。它们有许多用于管理 mongo 的模块,例如 mongoose、waterline 或我最近编写的 wadofgum-mongodb