【问题标题】:One repository to two databases, MongoDB and Spring Boot一个存储库到两个数据库,MongoDB 和 Spring Boot
【发布时间】:2019-01-17 05:51:36
【问题描述】:

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

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

有什么办法吗?

【问题讨论】:

    标签: mongodb spring-boot repository


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      不可能轻易地使用存储库(只需稍加修改即可使用多个存储库,因为我们不能使用一个,因为 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/

      【讨论】:

        猜你喜欢
        • 2019-12-10
        • 1970-01-01
        • 1970-01-01
        • 2016-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-25
        相关资源
        最近更新 更多