Es empfiehlt sich, die Verbindung einmal zu öffnen, in einer Variablen zu speichern und am Ende wieder zu schließen. MongoDB empfiehlt dies ausdrücklich. Dies ist der Grund, warum das Öffnen und Schließen einer Verbindung Teil der MongoDB-API ist und nicht automatisch für jede Abfrage geschieht.
Das Öffnen und Schließen von Verbindungen für jede Abfrage führt zu einem erheblichen Overhead sowohl in Bezug auf die Leistung (CPU + Latenz), den Netzwerkverkehr als auch die Speicherverwaltung (Erstellen und Löschen von Objekten), nicht nur für den Client, sondern auch für den Server selbst, was sich ebenfalls auswirkt andere Kunden.
Über die Terminologie der Verbindung Hinweis:In einigen Treibern wie Java wird tatsächlich keine physische Verbindung erstellt und in einer Variablen gespeichert, sondern ein MongoClient
Beispiel. Aus abstrakter (API-)Perspektive sieht es wie eine Verbindung aus, aber es kapselt tatsächlich die tatsächliche(n) physische(n) Verbindung(en) und verbirgt die Komplexität vor dem Benutzer.
Erstellen des MongoClient
Instanz nur einmal, für die Treiber, die dies unterstützen, können Sie auch vom Verbindungspooling profitieren wobei der Treiber für Sie parallel aktive Verbindungen aufrechterhält, sodass Sie auch nur einen MongoClient
anlegen müssen Instanz über mehrere Threads hinweg.