一个存储库,用于两个数据库MongoDB和Spring Boot

时间:2018-08-09 17:07:22

标签: mongodb spring-boot repository

我有一个存储库,我想以编程方式保存在两个不同的MongoDB数据库中。

如果用户输入带有参数DB1的URL,则存储库将保存在数据库DB1(如果是DB2)内部,到数据库DB2等。

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

不是自动的。您需要将应用程序连接到2个DB,并根据请求中的参数调用每个DB。据我所知,您将需要两个单独的存储库。

答案 1 :(得分:0)

不可能轻易地使用存储库(使用多个存储库并稍加修改,因为我们不能使用一个,因为URL中的每个参数都是疯狂的。

因此,为了避免大量重复的代码,我们必须使用Java驱动程序。

MongoClient mongoClient = new MongoClient("localhost", 27017);

//here we can change the database name
MongoOperations mongoOperations = new MongoTemplate(mongoClient, database);

mongoOperations.save(YOUR_POJO);

mongoClient.close();

POJO对象必须使用de @Document注释,否则将出现编解码器问题。在这里您可以解决它们:http://mongodb.github.io/mongo-java-driver/3.2/bson/codecs/