Het is het beste om de verbinding eenmaal te openen, op te slaan in een variabele en aan het einde te sluiten. MongoDB beveelt dit expliciet aan. Dit is de reden waarom het openen en sluiten van een verbinding onderdeel is van de MongoDB API in plaats van dat dit automatisch gebeurt voor elke zoekopdracht.
Het openen en sluiten van verbindingen voor elke query zal een aanzienlijke overhead met zich meebrengen, zowel in termen van prestaties (CPU + latentie), netwerkverkeer, geheugenbeheer (objecten maken en verwijderen), niet alleen voor de client maar ook voor de server zelf, wat ook van invloed is op andere klanten.
Over de terminologie van verbinding :in sommige stuurprogramma's, zoals Java, is wat feitelijk wordt gemaakt en opgeslagen in een variabele geen fysieke verbinding, maar een MongoClient
voorbeeld. Het ziet eruit als een verbinding vanuit een abstract (API) perspectief, maar het kapselt in feite de daadwerkelijke fysieke verbinding(en) in en verbergt complexiteit voor de gebruiker.
De MongoClient
maken bijvoorbeeld slechts één keer, voor de stuurprogramma's die dit ondersteunen, kunt u ook profiteren van connection pooling waarbij de driver voor u actieve verbindingen onderhoudt, zodat u ook maar één MongoClient
hoeft aan te maken instantie in meerdere threads.