[英]When to close a MongoDB connection
对于上下文,我正在编写一个ExpressJS应用程序,并使用MongoDB节点驱动程序mongodb
。
该应用有时需要快速与远程数据库对话,具体取决于用户执行操作的频率。 我知道该应用程序每次需要数据时都不应打开和关闭连接。 它应该连接一次,并且应该有一个名为db
的东西可用于查询,例如: db.collection("users").find(...)
,以后所有的DB调用都应仅使用该db
变量。
但是,如果我部署了我的应用程序,我假设server.js
在应用程序生命周期的开始只执行一次。 这意味着在该部署的整个生命周期中仅建立一次连接。
但是这些连接不超时吗? 我是否只检查db
var是否为打开的连接,如果不是,则在进行呼叫之前重新连接?
令人惊讶的是,我没有找到很多指南,所以我不知道正确的方法,这就是为什么我在这里问。 请让我知道是否可以更好地询问这个问题。
您不必自己管理连接。 MongoClient.connect调用随附电池。 请参阅文档 :connect方法包括一个autoReconnect
(默认为true),它将尝试保持连接可用。 您还可以使用poolSize
(默认为5)为客户端(您可以在整个应用程序中保存和重复使用)提供使用多个连接的机会。
添加完整的示例:
const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017';
MongoClient.connect(url)
.then(client => runMyApp(client));
function runMyApp(client) {
// Use client however you like e.g.
client.db('users').find({})
.then((results) => console.log(results));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.