MongoClient mantiene un pool di connessioni, apri una connessione Db una volta con MongoClient e la riutilizzi nell'applicazione perché l'impostazione di una nuova connessione TCP è costosa in termini di tempo e di memoria, ecco perché riutilizzi le connessioni. Inoltre, una nuova connessione causerà la creazione di un nuovo thread su MongoDB utilizzando anche la memoria sul Db.
- punto da notare che esiste una race condition nel metodo connectToMongo. Devi sincronizzare l'accesso a quel metodo per assicurarti che venga creata al massimo un'istanza di MongoClient.