【发布时间】:2019-01-17 05:51:36
【问题描述】:
我有一个存储库,我想以编程方式将其保存在两个不同的 MongoDB 数据库中。
如果用户输入带有参数DB1的URL,存储库将保存在数据库DB1中,如果是DB2,则保存到数据库DB2等中。
有什么办法吗?
【问题讨论】:
标签: mongodb spring-boot repository
我有一个存储库,我想以编程方式将其保存在两个不同的 MongoDB 数据库中。
如果用户输入带有参数DB1的URL,存储库将保存在数据库DB1中,如果是DB2,则保存到数据库DB2等中。
有什么办法吗?
【问题讨论】:
标签: mongodb spring-boot repository
不是自动的。您需要将应用程序连接到 2 个 DB,并根据请求中的参数调用每个 DB。据我所知,您需要两个单独的存储库。
【讨论】:
不可能轻易地使用存储库(只需稍加修改即可使用多个存储库,因为我们不能使用一个,因为 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 @Documentannotation,否则您将遇到编解码器问题。在这里你可以解决它们:http://mongodb.github.io/mongo-java-driver/3.2/bson/codecs/
【讨论】: