node.js - 为什么在每次查询后连接并关闭 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()
});
});
}
};
解决方案
推荐阅读
- python - Python删除空键和空键不会影响我的对象
- python - OpenCV 3.4.1 错误 readNetFromTensorflow Can't open .pb in cv::dnn::ReadProtoFromBinaryFile
- wpf - 如何连接 WPF 和 WebAPI
- kubernetes - Kubernetes可以管理硬件设备吗?
- python - 模板不存在错误...在运行 manage.py 时出现 Django 错误
- python - 在 Python 3 中迭代图像的问题
- javascript - 为什么当 readonly=true 时使用 Javascript 分配给 Primefaces inputText 小部件的值不会发送到服务器?
- elasticsearch - 将 AWS Appsync 与 DynamoDB 结合使用,您是否应该通过将相关数据的“冗余副本”存储在同一个表上来建模关系(非规范化)?
- reactjs - 将 Asp.Net Core 的 React + Redux 入门模板中的入口点更改为控制器
- reactjs - 当更改一个特定的状态设置时,是否有必要重述所有其他状态设置?