Il est recommandé d'ouvrir la connexion une fois, de la stocker dans une variable et de la fermer à la fin. MongoDB le recommande explicitement. C'est la raison pour laquelle l'ouverture et la fermeture d'une connexion font partie de l'API MongoDB plutôt que de le faire automatiquement pour chaque requête.
L'ouverture et la fermeture de connexions pour chaque requête introduiront un surcoût important à la fois en termes de performances (CPU + latence), de trafic réseau, de gestion de la mémoire (création et suppression d'objets), non seulement pour le client mais aussi pour le serveur lui-même, ce qui impacte également d'autres clients.
À propos de la terminologie de connexion :dans certains pilotes comme Java, ce qui est réellement créé et stocké dans une variable n'est pas une connexion physique, mais un MongoClient
exemple. Cela ressemble à une connexion d'un point de vue abstrait (API), mais elle encapsule en fait la ou les connexions physiques réelles et masque la complexité à l'utilisateur.
Création du MongoClient
une seule instance, pour les pilotes qui le prennent en charge, vous permettra également de bénéficier du regroupement de connexions où le pilote maintient des connexions actives en parallèle pour vous, de sorte que vous n'avez également besoin de créer qu'un seul MongoClient
instance sur plusieurs threads.