Docs 菜单
Docs 主页
/ / /
java sync

新增功能

在此页面上

  • 即将发生的破坏性变更 (breaking change)
  • 4.9 的新增功能
  • 4.8 中的新增功能
  • 4.7.1 中的新增功能
  • 4.7 中的新增功能
  • 4.6 的新增功能
  • 4.5.1 中的新增功能
  • 4.5 中的新增功能
  • 4.4 中的新增功能
  • 4.3 的新增功能
  • 4.2 的新增功能
  • 4.1 中的新增功能
  • 4.0 中的新增功能

了解以下版本中的新功能:

  • 版本 4.9

  • 版本 4.8

  • 版本 4.7.1

  • 版本4.7.0

  • 版本 4.6

  • 版本4.5.1

  • 版本 4.5

  • 版本 4.4

  • 4.3 版本

  • 版本 4.2

  • 版本 4.1

  • 版本 4.0

重要

聚合表达式操作处于 Beta 阶段

此驱动程序版本引入了用于创建聚合表达式的 API。此功能处于 beta 阶段。

4.9 版驱动程序的新增功能包括:

  • 添加了一个新的异常,用于识别何时由 BsonCreator注解的构造函数包含带有BsonPropertyBsonId以外注解的参数。

  • 更改了 org.mongodb.driver.protocol.command 程序包报告的命令监控信息的日志信息格式。

  • 聚合”助手类中添加了对 $documents 聚合管道阶段的支持。

  • 增加了 MongoClientSettings.Builder.applyToLoggerSettings()LoggerSettings.Builder.maxDocumentLength() 方法,允许您在日志消息中指定 BSON 文档的扩展 JSON 表示形式的最大长度。

警告

v4.8 的重大更改

v4.8 驱动程序包含重大更改。请参阅 4.8 版重大更改4.8 版服务器版本支持更改了解详情。

重要

弃用通知

IterableCodecMapCodec 类已被弃用。请改用 CollectionCodecMapCodecV2。二者支持任何实现 CollectionMap 的类。

4.8 驱动程序版本的行为更改包括:

  • 如果您的应用程序在 OSGi 容器中部署驱动程序并依赖该驱动程序来编码和解码 Java 记录,则要求您添加对 org.bson.codecs.record 模块的显式依赖项。

  • DEBUG 级而不是 INFO 级记录新连接信息。

4.8 驱动程序版本的新功能包括:

  • 支持使用 AWS 进行身份验证。该驱动程序对 AWS SDK 版本 1 和版本 2 具有可选依赖项。

  • 支持从环境中获取 GCP 和 Azure 的档案,以用于正在使用的加密。

  • 支持对包含具有通用参数的组件的记录进行反序列化。

  • 支持对包含更具体容器类型(例如 SortedSetNavigableMapLinkedListTreeSet)的组件的记录进行反序列化。

  • 支持递归记录类型,即其类型定义包含周期的记录。

  • 在 MongoDB v 6.1及更高版本上启用showExpandedEvents服务器功能时,在变更流更新事件中包含disambiguatedPaths字段。 通过 getDisambiguatedPaths() 了解有关此字段的更多信息 API 文档。有关showExpandedEvents设置的更多信息,请参阅扩展事件服务器文档。

4.7.1驱动程序修复了影响客户端字段级加密和 Queryable Encryption 的错误。对使用 Google Cloud Key Management Service 或 Azure Key Vault 上托管的客户主密钥进行加密的数据加密密钥 (DEK) 进行轮换时,该错误可能会导致数据损坏。该错误存在于此驱动程序的 4.7.0 版本的 RewrapManyDataKey 方法中,且会导致 DEK 丢失。

重要

备份密钥保管库集合

轮换 DEK 之前,请务必备份密钥保管库集合。如果丢失了 DEK,则无法访问使用这些密钥加密的所有数据。

警告

v4.7 的重大更改

v4.7 驱动程序包含重大更改。有关详情,请参阅版本 4.7 重大更改

4.7 版驱动程序的新增功能包括:

  • 已添加对 MongoDB 6.0 的全面支持。

  • 添加了以下变更流支持改进:

    • 增强了对变更流的前图像和后图像支持。变更流监视助手现在接受 whenAvailablerequired 作为 fullDocument 选项。如需了解更多信息,请参阅变更流参考文档。

    • 新增 fullDocumentBeforeChange 选项,可接受 whenAvailablerequired

    • 更改事件在配置为显示在 MongoDB 集合上时,现在包含 fullDocumentBeforeChange 字段。

    • 已添加对变更流的 showExpandedEvents 支持。

    • ChangeStreamDocument 类增加了 wallTime 支持。

  • 已添加集群索引创建支持。

  • 支持与Queryable Encryption相关的新功能,包括支持自动加密(需要 MongoDB v 6 。 0 Enterprise 或更高版本)和手动加密。

    • 支持新的 Queryable Encryption 共享库,从而不再需要mongocryptd 进程。 Queryable Encryption 共享库需要 org.mongodb:mongodb-crypt 1.5.1.1或更高版本。

  • 为加密密钥管理添加了新的 API。

  • 为其他聚合阶段添加了构建器 API 方法,包括$search / $searchMeta (仅限 Atlas)、 $densify$fill 。在聚合生成器页面了解有关这些方法的更多信息。

  • 添加了可用于 POJO 编码和解码的 BsonExtraElements 注解。BsonExtraElements 可以解码将来可能接收新字段的对象,而无需开发人员显式映射这些新字段。

  • 性能优化包括:

    • 服务器会话池和缓冲池的无锁实现。

    • 新的 DBCursor 清理实现,使用 Java 的 Cleaner API 而不是 finalization,在 Java 9 或更高版本中可用。

  • setWindowFields 生成器 API 不再是测试版功能。更改 API 会破坏二进制和源代码的兼容性。有关详情,请参阅版本 4.7 重大更改

4.6 版 Java 驱动程序的新增功能包括:

如果 DNS 服务器返回 NXDomain 错误,则表示不存在某个域,因而 4.5.1 驱动程序不再引发异常。

4.5 版 Java 驱动程序的新增功能包括:

  • 已添加对指定 SRV 资源记录自定义服务名称的支持。如需了解更多信息,请参阅“连接选项”指南中的 srvServiceName 设置。

  • 增加了对使用 CodecRegistries.withUuidRepresentation() 方法在编解码器注册表中自定义 UUID 表示形式的支持。

  • 已添加在 ClusterSettingsServerSettingsConnectionPoolSettings 生成器中覆盖监听器设置的支持。

  • 现在,当不同 MongoClient 实例不共享监听器时,ClusterListenerServerListenerServerMonitorListener 收到的所有事件都会使用 happens-before 关系完全排序。如需了解有关 happens-before 排序的更多信息,请参阅“Java 语言规范”中的“Happens-before 排序”。

  • 添加了EnumCodecEnumCodecProvider类,以便将enum类型的编解码器支持与PojoCodec类分开。 可通过MongoClientSettingsBson接口访问的默认编解码器注册表现在包含enum编解码器类。 如果应用程序使用自定义枚举编解码器和默认注册表之一,请确保按照重写编解码器部分中的描述对它们进行排序。

  • 解决了影响4版本的性能问题。 4和4 。驱动程序的3 。此版本中的性能应与4中的性能相似。 2 。

  • 已解决因检索集群描述而产生的错误未传递至 onError 订阅者回调的问题

  • 解决了启用压缩后连接时释放 ByteBuf 实例的问题。

  • org.mongodb.driver-core OSGi 包中删除了对 javax.annotation.* 包的不必要依赖。

4.4 版 Java 驱动程序的新增功能包括:

  • 与 MongoDB 5.1 兼容并支持 Java 17

  • 已在下列位置添加对索引提示的支持: AggregateIterable

  • 增加了对从节点上 $merge$out 聚合阶段的支持

  • Updates 构建器中使用 mergeObjects() 方法

  • DocumentCodec 在写入 IterableMap 实例时不会忽略 CodecRegistry

4.3 版 Java 驱动程序的新增功能包括:

  • 已添加对 MongoDB 稳定版 API 的支持。如需了解更多信息,请参阅我们的“稳定版 API”指南。

    注意

    从 2022 年 2 月开始,版本化 API 被称为 Stable API。此次命名更改后,所有概念和功能均保持不变。

  • 已添加对连接“MongoDB Atlas 无服务器实例”的支持。有关设置的更多信息,请参阅我们的文档:了解如何创建新的无服务器实例

  • setWindowFields 管道阶段添加了生成器 API,允许使用窗口操作符

  • 添加了对设置 Netty io.netty.handler.ssl.SslContext 的支持

  • 添加了支持快照读取 ClientSession

  • 限制每个连接池建立新连接的速度

  • 删除了对插入或替换文档字段名中允许字符的大部分限制。对于任何依赖项客户端执行这些限制的应用程序来说,这都是一种行为更改。

下表显示了文档字段名称中允许使用的字符的限制状态:

字符
操作
说明
.
插入和替换
删除了对包含此字符的字段名称的限制。
$
Insert
删除了对以此字符开头的字段名称的限制。
$
替换
已删除嵌套文档中对包含此字符的字段名称的限制。
$
替换
保持顶层文档中对以此字符开头的字段名称的限制。这样可以防止在打算使用更新操作时意外使用替换操作。

注意

使用美元前缀或虚线键执行的未确认写操作可能会被 5.0 之前的版本静默拒绝。服务器,对字段名称的某些限制仍在服务器中执行。

警告

v4.2 的重大更改

v4.2 驱动程序包含重大更改。有关详情,请参见版本 4.2 重大更改

4.2 版 Java 驱动程序的新增功能包括:

  • 向客户端字段级加密添加 Azure 与 GCP 密钥存储库

  • 添加了 Kerberos 缓存票证,以便在多个身份验证请求中重复使用

  • 添加 了 MongoClientsMongoClientSettingsConnectionString 作为配置的实例

  • 查找聚合命令中使用 explain() 方法

  • 添加了 JsonObject 类,通过避免中间的 Map 表示,使 JSON 的编码和解码更加高效

  • 添加了 BsonRepresentation 注解,允许您将ObjectId BSON 值表示为String POJO 中的 类

  • 增加了 Filters.empty() 方法

4.1 版 Java 驱动程序的新增功能包括:

  • 在计划维护事件期间,客户感知到的故障转移时间显著减少

  • update() delete() 方法现在支持索引提示

  • find() 方法支持 allowDiskUse(),用于需要过多内存才能在 RAM 中执行的排序。

  • 增加了对使用 Amazon Web Services (AWS) 身份和访问管理 (IAM) 凭证的 MONGODB-AWS 身份验证机制的支持

  • 身份验证需要减少往返服务器的次数,从而加快连接设置

警告

v4.0 中的重大变化

v4.0 驱动程序包含重大更改。有关详情,请参见版本 4.0 重大更改

此版本未添加任何新功能。

后退

快速参考