mongodb 将mongo-java-driver升级到版本3.9.1

y1aodyip  于 2023-02-03  发布在  Go
关注(0)|答案(1)|浏览(497)

我正在升级我们的一个项目的Spring版本,因此MongoDB库也必须升级。
我无法跟踪MongoDB库的前一个版本是什么,但当前版本是3.9.1。
我有下面的一段代码,因为升级而不工作,我应该如何重写它?

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.ServerAddress;

public sampleMethod() {
  MongoClient client = null;

  if (...) {
      List<ServerAddress> saList = new ArrayList<>();
      for (...) {
          saList.add(...);
      }
      client = new MongoClient(saList);
  } else if (...) {
      MongoClientURI mongoClientURI = new MongoClientURI("mongodb://...");
      client = new MongoClient(mongoClientURI);
  } else {
      MongoClientURI mongoClientURI = new MongoClientURI("mongodb://..." + this.encryptedProperties.getProperty("mongo.username") + "....");
      client = new MongoClient(mongoClientURI);
  }

  return new MongoTemplate(client, srcDbname);
}

现在的问题是return语句,因为在2.1版本之后,MongoTemplate的签名现在是public MongoTemplate(com.mongodb.client.MongoClient mongoClient, String databaseName)。在2.1版本之前,它是public MongoTemplate(com.mongodb.MongoClient mongoClient, String databaseName)
我正在查看MongoClient接口的documentationcom.mongodb.client.MongoClient包)&它声明“这个类的示例可以通过MongoClients工厂来创建。”查看MongoClients,方法不能适应使用参数List<ServerAddress>创建MongoClient,与MongoClientcom.mongodb.MongoClient封装)相同。
| Package |旧版本|链接|新版本|链接|
| - ------|- ------|- ------|- ------|- ------|
| 蒙戈-java-驱动程序/ com.蒙戈数据库|不确定,找不到,但会更新|- -|三、九、一|https://www.javadoc.io/static/org.mongodb/mongo-java-driver/3.9.1/index.html|
| org.springframework.data:蒙古Spring Data 库| 2.0.8.RELEASE |https://docs.spring.io/spring-data/mongodb/docs/2.0.8.RELEASE/api/|三、二、零|https://docs.spring.io/spring-data/mongodb/docs/3.2.0/api/|
我是一个初级开发人员(6个月的工作经验),对项目版本升级不太熟悉,请耐心等待,谢谢您的理解
我不知道如何进行,我目前正在阅读文档&做一些谷歌搜索,看看可能的解决方案会是什么
我没有MongoDB的经验

xoshrz7s

xoshrz7s1#

看起来您要升级到Spring Data MongoDB的3.2版本,根据参考文档,主要版本系列(3.x)要求您使用MongoDB Java驱动程序的4.x版本。
7.1.依赖关系更改导入现在被拆分为包含单独的工件,而不是单个工件uber-jar mongo-java-driver:
用户名:mongodb-驱动程序-核心(必填)
org.mongodb:mongodb驱动程序同步(可选)
org.mongodb:mongodb-驱动程序-活动流(可选)
根据应用程序的不同,mongodb-driver-sync,mongodb-driver-reactive流中的一个工件是必需的,紧挨着必需的mongodb-driver-core。如果需要,可以在一个应用程序中合并同步和React驱动程序。

相关问题