Я хочу иметь произвольные базы данных (например, 50) с одинаковыми коллекциями (одинаковые схемы, точные модели, разные данные) и веб-приложение 1 nodejs (expressjs + mongoose).
Пример упрощенного случая:
У меня есть:
- одно веб-приложение (expressjs + mongoose) с моделью
User
. - 50 доменов 50 баз данных с коллекцией
users
.
Какого поведения я хочу добиться:
GET /api/users/
http запрос приходит на один из доменов (test-domain-39.myapp.com)- app получает запрошенное доменное имя (test-domain-39) и каким-то образом мангуст понимает, что он хочет запросить базу данных-39, когда я просто делаю
User.find({isActive: true})
вusers.controller
Поэтому мне просто нужна абстракция. Я передаю имя db в mongoose и продолжаю работать с моделью User
(как мы все обычно делаем при наличии одного соединения с DB), а mongoose, если нужно, создает соединение (если это первый запрос к конкретной db), поддерживает его в течение следующие запросы в пул соединений и т. д.
Какой самый простой и эффективный способ сделать это?
Заранее спасибо!