繁体   English   中英

何时关闭MongoDB连接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM