我正面臨一個關于MongoDB多租戶的問題.我有兩個不同的mongoDB數據庫(db1和db2).這兩者都有不同的憑據.
db1憑據:
userName:admin
密碼:passwd
db2憑據:
userName:admin1
密碼:passwd1
我需要在運行時從一個數據庫切換到另一個數據庫.我已使用db1憑據自動裝配mongoTemplate,但現在我無法使用db2憑據更新模板.這可能嗎?如果有,怎么樣?如果沒有,請告訴我任何其他方式在運行時使用不同的憑據切換數據庫.
請注意,我知道“SimpleMongoDbFactory”.可以擴展“SimpleMongoDbFactory”并覆蓋“getDb”方法并在super.getDb(“dbName”)中傳遞所需的dbName以進行多租戶.但是,這不適用于具有不同憑據的兩個數據庫.
如果為每個數據庫創建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));