Jeg vil ikke anbefale manuelt at oprette og administrere disse separate forbindelser. Jeg kender ikke detaljerne i dine krav til flere lejere (antal lejere, størrelse på databaser, forventede antal transaktioner osv.), men jeg tror, det ville være bedre at gå med noget som Mongooses useDb-funktion . Så kan Mongoose håndtere alle forbindelsespuljens detaljer.
opdatering
Den første retning, jeg ville udforske, er at konfigurere hver lejer på en separat nodeproces. Der er nogle interessante fordele ved at køre dine lejere i separate nodeprocesser. Det giver mening ud fra et sikkerhedssynspunkt (isoleret hukommelse) og fra et stabilitetssynspunkt (et nedbrud i en lejerproces påvirker ikke andre).
Hvis du antager, at du baserer lejeperioden ud fra URL'en, ville du konfigurere en proxyserver foran de faktiske lejerservere. Dets opgave ville være at se på URL'en og ruten til den korrekte proces baseret på disse oplysninger. Dette er en meget ligetil node http-proxy Opsætning. Hver lejerforekomst kunne være nøjagtig den samme kodebase, men lanceret med en anden konfiguration (som fortæller dem, hvilken mongo-forbindelsesstreng de skal bruge).
Det betyder, at du er i stand til at designe din faktiske applikation, som om den ikke var multi-lejer. Hver proces kender kun til én mongo-database, og der er ingen multi-tenant-logik nødvendig. Det giver dig også mulighed for nemt at opdele trafikken senere baseret på belastning. Hvis du har brug for at opdele lejerne af præstationsmæssige årsager, kan du gøre det transparent på proxy-niveau. DNS'et kan alle forblive det samme, og du kan bare flytte den server, som instanserne er på bag kulisserne. Du kan endda få proxyen til at balancere anmodningerne om en lejer mellem flere servere.