Para el contexto, estoy escribiendo una aplicación ExpressJS y usando el controlador de nodo MongoDB, mongodb .
La aplicación necesitará hablar con la base de datos remota rápidamente a veces, dependiendo de la frecuencia con la que los usuarios hagan las cosas. Entiendo que la aplicación no debe abrir y cerrar una conexión cada vez que necesita datos. Debería conectarse una vez, y debería haber algo llamado db que pueda usar para realizar consultas, por ejemplo: db . db.collection("users").find(...) .
Pero si implemento mi aplicación, asumo que server.js solo se ejecuta una vez al comienzo de la vida de la aplicación. Eso significaría que una conexión se realiza una vez en toda la vida útil de esa implementación.
¿Pero no se agotan estas conexiones? ¿Solo db que la base de datos var sea una conexión abierta y, si no, vuelvo a conectarme antes de hacer una llamada?
Sorprendentemente, no he encontrado muchas guías, así que no sé cuál es el camino correcto, por eso pregunto aquí. Por favor, avíseme si puedo hacer esta pregunta de una mejor manera.
No es necesario que administre la conexión usted mismo. La llamada MongoClient.connect viene con pilas incluidas. Consulte los documentos : los métodos de conexión incluyen una autoReconnect (el valor predeterminado es verdadero) que intentará mantener la conexión disponible. También tiene poolSize (el valor predeterminado es 5) para darle al cliente (que puede guardar y reutilizar en su aplicación) la oportunidad de usar más de 1 conexión.
Agregar ejemplo completo:
const { MongoClient } = require('mongodb'); const url = 'mongodb://localhost:27017'; MongoClient.connect(url) .then(client => runMyApp(client)); function runMyApp(client) { // Use client however you like eg client.db('users').find({}) .then((results) => console.log(results)); }