Не бих препоръчал ръчно създаване и управление на тези отделни връзки. Не знам подробностите за вашите изисквания за множество клиенти (брой клиенти, размер на базите данни, очакван брой транзакции и т.н.), но мисля, че би било по-добре да използвате нещо като Функцията useDb на Mongoose . Тогава Mongoose може да обработва всички подробности за пула на връзките.
актуализация
Първата посока, която бих проучил, е да настроя всеки клиент на отделен процес на възел. Има някои интересни ползи от това да управлявате вашите наематели в отделни възлови процеси. Има смисъл от гледна точка на сигурността (изолирана памет) и от гледна точка на стабилност (сривът на един клиентски процес не засяга други).
Ако приемем, че базирате наемането на URL адреса, бихте настроили прокси сървър пред действителните сървъри на наематели. Неговата работа би била да погледнете URL адреса и да насочите към правилния процес въз основа на тази информация. Това е много ясен node http прокси настройвам. Всеки клиентски екземпляр може да бъде абсолютно същата кодова база, но стартирана с различна конфигурация (която им казва какъв низ за връзка mongo да използва).
Това означава, че можете да проектирате действителното си приложение така, сякаш не е мултитенантно. Всеки процес знае само за една mongo база данни и не е необходима логика за много клиенти. Освен това ви позволява лесно да разделяте трафика по-късно въз основа на натоварването. Ако трябва да разделите наемателите от съображения за производителност, можете да го направите прозрачно на ниво прокси. Всички DNS могат да останат същите и можете просто да преместите сървъра, на който са екземплярите зад кулисите. Можете дори да накарате проксито да балансира заявките за клиент между множество сървъри.