Jag skulle inte rekommendera att manuellt skapa och hantera dessa separata anslutningar. Jag känner inte till detaljerna för dina krav för flera hyresgäster (antal hyresgäster, storlek på databaser, förväntade antal transaktioner, etc.), men jag tror att det skulle vara bättre att gå med något som Mongooses useDb-funktion . Då kan Mongoose hantera alla anslutningspooldetaljer.
uppdatering
Den första riktningen jag skulle utforska är att ställa in varje hyresgäst på en separat nodprocess. Det finns några intressanta fördelar med att driva dina hyresgäster i separata nodprocesser. Det är vettigt ur säkerhetssynpunkt (isolerat minne) och ur stabilitetssynpunkt (en processkrasch hos en hyresgäst påverkar inte andra).
Om du antar att du baserar hyresperioden från URL:en, skulle du ställa in en proxyserver framför de faktiska hyresgästservrarna. Det skulle vara att titta på URL:en och vägen till rätt process baserat på den informationen. Detta är en mycket enkel node http-proxy uppstart. Varje hyresgästinstans kan vara exakt samma kodbas, men lanseras med en annan konfiguration (som talar om för dem vilken mongo-anslutningssträng som ska användas).
Det betyder att du kan designa din faktiska applikation som om den inte var flera hyresgäster. Varje process känner bara till en mongo-databas, och det behövs ingen logik för flera klienter. Det gör också att du enkelt kan dela upp trafiken senare baserat på belastning. Om du behöver dela upp hyresgästerna av prestationsskäl kan du göra det transparent på proxynivå. DNS kan alla förbli desamma, och du kan bara flytta servern som instanserna är på bakom kulisserna. Du kan till och med låta proxyn balansera begäranden om en hyresgäst mellan flera servrar.