Spring data mongodb 多个Mongo数据库和spring数据

Spring data mongodb 多个Mongo数据库和spring数据,spring-data-mongodb,Spring Data Mongodb,我正在了解如何根据登录的用户动态连接到不同的mongo db。我看到很多帖子都在谈论它,但由于我是新手,我只是想了解更多关于如何实现它的内容。在我们的应用程序中,在创建用户帐户时,我们可以根据用户名创建不同的db文件,用户名充当密钥。 所以我们知道要连接哪个数据库,所以我想这只是选择正确工厂的问题。 我在模板代码中看到以下构造函数 public MongoTemplate(Mongo mongo, String databaseName) { this(new SimpleMongoDb

我正在了解如何根据登录的用户动态连接到不同的mongo db。我看到很多帖子都在谈论它,但由于我是新手,我只是想了解更多关于如何实现它的内容。在我们的应用程序中,在创建用户帐户时,我们可以根据用户名创建不同的db文件,用户名充当密钥。 所以我们知道要连接哪个数据库,所以我想这只是选择正确工厂的问题。 我在模板代码中看到以下构造函数

public MongoTemplate(Mongo mongo, String databaseName) {
    this(new SimpleMongoDbFactory(mongo, databaseName), null);
}
我当前的SpringJava配置执行以下操作

@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
    UserCredentials userCredentials = 
            new UserCredentials(
                    env.getRequiredProperty(databasePropertyNames.getDBUsernamePropertyName()), 
                    env.getRequiredProperty(databasePropertyNames.getDBPasswordPropertyName()));

    return new SimpleMongoDbFactory(mongo().getObject(),
            env.getRequiredProperty(databasePropertyNames.getDBNamePropertyName()), 
            userCredentials);
}

@Bean
public MongoTemplate mongoTemplate() throws Exception {
    MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory(), mappingMongoConverter());
    mongoTemplate.setWriteConcern(WriteConcern.SAFE);

    return mongoTemplate;
}


Questions:-
1.Will there be multiple SimpleMongoDbFactory objects that I need to create based on the user that logged in?
If yes then how do I do it and do I need to maintain that object Map?
2. How would I do set those in mongoTemplate at runtime?

非常感谢您的帮助:)

以下帖子对我很有用

github.com/Loki-Afro/multi-tenant-spring-mongodb


除此之外,还必须更新Mongo实例,以允许来自默认数据库的用户能够写入任何其他数据库

以下帖子对我来说效果很好[除此之外,还必须更新Mongo实例,以允许来自默认数据库的用户能够写入任何其他数据库