java - MongoDB Multi-Tenancy (Java): How to switch MongoDB databases,在运行时使用MongoClient具有不同的数据库凭据?

标签 java mongodb multi-tenant mongotemplate


我面临一个关于 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/

相关文章:

java - JerseyTest 默认端口更改以测试 REST WEB 服务

java - 实现DoublyLinkedList时出现StackOverflow错误

node.js - 如何动态查询文档中的对象

java - Java Spring Data 中的 MongoDB $graphlookup

google-app-engine - 谷歌应用引擎中的嵌套命名空间

java - Android Studio 监听器导致错误

java - ArrayList 声明的语法错误

string - MongoDB 大于 numberLong 的问题

spring - 如何在 Spring+Hibernate+C3P0 环境中构建/获取 ConnectionProvider?

mongodb - 数据库中的集合数量限制