【发布时间】:2017-01-04 00:59:28
【问题描述】:
我面临一个关于 MongoDB 多租户的问题。我有两个不同的 mongoDB 数据库(db1 和 db2)。它们都有不同的凭据。
db1 凭据:
用户名:管理员
密码:passwd
db2 凭据:
用户名:admin1
密码:passwd1
我需要在运行时从一个数据库切换到另一个。我已经使用 db1 凭据自动装配 mongoTemplate,但现在我无法使用 db2 凭据更新模板。这可能吗?如果是,如何?如果没有,请告诉我在运行时使用不同凭据切换数据库的任何其他方式。
请注意,我知道“SimpleMongoDbFactory”。可以扩展“SimpleMongoDbFactory”并可以覆盖“getDb”方法并在 super.getDb(“dbName”) 中传递所需的 dbName 以实现多租户。但是,这不适用于具有不同凭据的两个数据库。
【问题讨论】:
-
为什么不创建两个单独的 mongo 模板,每个模板都引用它自己的 simplemongodbfactory ?
-
这适用于 2 个或固定数量的数据库。但是如果数据库的数量不固定呢?
-
嗨Sumit,如果你解决了我也有同样的要求,请指导我。
-
您好 Lakshaman,使用 Java MongoClient 无法做到这一点。在初始化 mongoTemplate 之前,您必须知道数据库的数量,正如您在 stackoverflow.com/a/41446383/2163876 中看到的那样。其中一种解决方案是“签出 Java MongoClient 并根据我们的要求更新代码”。
标签: java mongodb multi-tenant mongotemplate