La connexion doit être réutilisée pour les raisons suivantes :
- L'ouverture et la fermeture des connexions à la base de données à chaque requête API sont lentes.
- C'est difficilement évolutif. En supposant que vous fassiez plusieurs requêtes API simultanément par utilisateur, vous atteindrez rapidement la même limite de connexions lorsque l'application aura plus d'utilisateurs.
Comment gérer les connexions MongoDB dans une application Web Node.js ?
MongoClient
par défaut la configuration a un nombre maximum de connexions par pool (poolSize
) défini sur 5
. Ainsi, vous ne devriez pas voir plus de ~5 connexions dans MongoDB Atlas si vous n'avez qu'une seule instance d'application en cours d'exécution et vérifiez si un client est déjà connecté, comme vous le faites.
if (!client.isConnected()) {
await client.connect();
}
Notez que Next.js "redémarre" à chaque requête en mode développement (next dev
) et il semble que cela affecte MongoClient
cache et crée de nombreuses connexions. Cependant, en mode production, vous ne devriez pas rencontrer ce problème.