Docs 菜单
Docs 主页
/ / /
java sync

新增功能

在此页面上

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

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

  • MapReduceIterable MongoCollection 上的 map-reduce方法 在MongoDB v 中已弃用。42和更高版本。 它们将被聚合框架取代,并在未来的发布中删除。

警告

v4.8 的重大更改

v 4.8驱动程序包含重大更改。 请参阅版本 4.8 重大更改版本 4.8 MongoDB Server版本支持更改,了解更多信息。

重要

弃用通知

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的错误。 在轮换使用 GCPKMS或 上托管的 客户主密钥 加密的 数据加密密钥(DEK) 时,该错误可能会导致数据损坏。Azure Key Vault该错误存在于RewrapManyDataKey方法中驾驶员4.7.0版本中,会导致 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 重大更改

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

后退

快速参考