首页 > 解决方案 > 为什么在每次查询后连接并关闭 mongodb 客户端?

问题描述

我正在学习 mongodb 来创建 API,在我看到的关于在 Node.JS 上使用 mongodb 和 Express 的每个示例或教程中,逻辑都以 a 开头client.connect,查询完成并被client.close()调用。每次查询之前真的有必要连接吗?当用户登录(第一次查询)时是否可以建立连接,然后在用户登录时我要做很多查询,我不需要在所有这些之后建立连接,如果用户注销,那就是我想关闭连接的时候。

另一个问题,我可以做另一种类型的电话来代替.toArray(function (err, result) {}吗?它将我所有的数据返回到一个包含单个元素的数组中,我result[0]有时需要这样做,这看起来很尴尬。

const search = {
    multiple: function (query, projection, callback) {
        console.log('multiple was called');
        client.connect(url, function (err, client ) {
            if (err) throw err;
            console.log('Connected to db');
            const db = client.db(currentdb);
            const collection = db.collection(currentcollection);
            collection.find(query).project(projection)
                .toArray(function (err, result) {
                    console.log('Result on the way');
                    if (err) throw err;
                    callback(result)
                    client.close()
                });
        });
    }
};

标签: node.jsmongodbexpressmongoose

解决方案


推荐阅读