我面临一个关于 MongoDB Multi-Tenancy 的问题。我有两个不同的 mongoDB 数据库(db1 和 db2)。它们都有不同的凭据。
db1 凭据:
用户名:admin
密码:passwd
db2 凭据:
用户名:admin1
密码:passwd1
我需要在运行时从一个数据库切换到另一个。我已经使用 db1 凭据自动连接了 mongoTemplate,但现在我无法使用 db2 凭据更新模板。这可能吗?如果是,如何?如果没有,请告诉我在运行时使用不同凭据切换数据库的任何其他方式。
请注意,我知道“SimpleMongoDbFactory”。可以扩展“SimpleMongoDbFactory”并且可以覆盖“getDb”方法并在super.getDb(“dbName”)中传递所需的dbName以进行 Multi-Tenancy 。但是,这不适用于具有不同凭据的两个数据库。
最佳答案
如果您为每个数据库创建一个 MongoCredential
并将它们传递给您传递给您的 SimpleMongoDbFactory
MongoClient
会怎样
MongoCredential credential1 = MongoCredential.createCredential("admin", db1, "password");
MongoCredential credential2 = MongoCredential.createCredential("admin1", db2, "password1");
MongoClient mongoClient = new MongoClient(new ServerAddress(), Arrays.asList(credential1, credential2));
关于java - MongoDB Multi-Tenancy (Java): How to switch MongoDB databases,在运行时使用MongoClient具有不同的数据库凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41445876/