com.mongodb.client.MongoClient 和 com.mongodb.MongoClient 的区别

Posted

技术标签:

【中文标题】com.mongodb.client.MongoClient 和 com.mongodb.MongoClient 的区别【英文标题】:Differences between com.mongodb.client.MongoClient and com.mongodb.MongoClient 【发布时间】:2020-06-01 15:49:12 【问题描述】:

我对 MongoDB 有点陌生,我对 MongoClient 类感到困惑,因为在不同的包中有两个(com.mongodb.client.MongoClientcom.mongodb.MongoClient)。我所看到的是它们或多或少有相同的目的,但我可能是错的。

这两个类之间有什么区别?是否推荐其中一个而不是另一个?

【问题讨论】:

在MongoDB Java Driver 3.12 (reference) 文档中,com.mongodb.client.MongoClient mongoClient = MongoClients.create(); 是创建MongoClient 对象的方式,而传统方式com.mongodb.MongoClient mongoClient = new MongoClient();。这表明com.mongodb.client.MongoClient 是您可以考虑使用的。我想这取决于您使用的驱动程序软件的版本。在驱动程序版本 3.7 之前,只有一个选项:com.mongodb.MongoClient 【参考方案1】:

使用 com.mongodb.client.MongoClient.create()(3.7 或更高版本),旧版 api com.mongodb.MongoClient() 已弃用。

com.mongodb.client.MongoClient 实例代表一个数据库连接池;即使有多个线程,您也只需要一个 MongoClient 类的实例。

参考:http://mongodb.github.io/mongo-java-driver/3.12/driver/tutorials/connect-to-mongodb/

com.mongodb.client.MongoClient 从 3.7 版本开始添加,使用以下代码获取具有新 API 的实例:

    MongoClient mongoClient = MongoClients.create()

【讨论】:

这个是mongoDB 3.7版本还是驱动版本?

以上是关于com.mongodb.client.MongoClient 和 com.mongodb.MongoClient 的区别的主要内容,如果未能解决你的问题,请参考以下文章