文档菜单
文档首页
/ / /
Kotlin 同步驱动程序

新增功能

本页内容

  • 5.2 中的新增功能
  • 5.1.3 中的新增功能
  • 5.1.2 中的新增功能
  • 5.1.1 中的新增功能
  • 5.1 中的新增功能
  • 5.0 中的新增功能

了解

  • 版本 5.2

  • 版本 5.1.3

  • 版本 5.1.2

  • 版本 5.1.1

  • 版本 5.1

  • 版本 5.0

重要

移除对 MongoDB Server 3.6 的支持

Kotlin 同步驱动程序 v5.2 移除了对 MongoDB Server 3.6 的支持。要了解有关兼容服务器版本的更多信息,请参阅兼容性.

5.2 驱动程序版本包含以下新功能、改进和修复

  • 添加了SearchIndexType 类,您可以在创建 SearchIndexModel 实例时传递。此更改允许您在创建 Atlas Search 或 Vector Search 索引时指定索引类型。有关更多信息,请参阅Atlas Search 和 Vector Search 索引 指南.

  • 将实现 SCRAM-SHA-1SCRAM-SHA-256 身份验证机制的算法的实现委托给配置的 JCA 提供商。此更改意味着您的应用程序可以使用配置的 FIPS 兼容 JCA 提供商提供更高级别的安全性。

  • 修改了mongodb-crypt的依赖版本,以匹配JVM驱动程序的版本。未来版本的mongodb-crypt将与驱动程序同时发布,并共享相同的版本号。在升级此版本驱动程序时,您必须将mongodb-crypt依赖项升级到v5.2.0。有关更多信息,请参阅使用中的加密指南.

  • 由于在所有支持的平台上都实现了原生加密,性能得到提高。以下列表描述了根据您的操作系统需要采取的操作来实现此改进

    • Windows:将您的mongodb-crypt版本升级到v5.2.0。

    • Mac:将您的mongodb-crypt版本升级到v5.2.0。

    • Linux:在文件系统上直接安装libmongocrypt.so,而不是使用包含在mongodb-crypt JAR文件中的文件。您可以在服务器手册中找到安装libmongocrypt的Linux说明。如果您使用包管理器安装libmongocrypt,Java Native Access (JNA)将在那里找到它而无需进一步配置。或者,您可以通过将LD_LIBRARY_PATH环境变量设置为libmongocrypt包的文件路径来指定搜索路径。

      我们建议直接安装,因为捆绑的共享库由于OpenSSL二进制不兼容性的可能性而没有链接到OpenSSL。

      共享库加载由JNA处理。您可以在NativeLibrary类文档中查看库加载搜索路径顺序的规则。

  • 修复了一个问题,该问题导致在某些情况下,InsertOneResult.getInsertedId()InsertManyResult.getInsertedIds() 方法返回错误的文档 ID。此更改已回滚到 Kotlin Sync 驱动程序 v5.1.4 和 v4.11.4。

  • 当分片集群操作失败时,如果还有其他可用的 mongos 服务器,驱动程序将避免为操作重试尝试选择相同的 mongos 服务器。

  • 添加了当您的应用程序使用 GraalVM Native Image 时所需的可达性元数据。此元数据取代了使用驱动程序库时收集可达性元数据的需要。有关更多信息,请参阅 GraalVM 文档中的 可达性元数据

    此更改不添加 libjnidispatchlibmongocrypt 资源条目,因为为所有支持的平台(目标)添加条目将显着影响使用 GraalVM Native Image 构建的本地可执行文件的大小。请查看驱动程序 GitHub 存储库中的此样本 resource-config.json 文件,了解如何在您的应用程序依赖于 org.mongodb:mongodb-crypt 库时显式指定这些条目。

  • 通过扩展 VectorSearchOptions API 以引入以下特定选项子类型来启用精确向量搜索

    • ExactVectorSearchOptions:使用此选项类型以启用精确匹配,确保结果是最接近查询向量的向量。

    • ApproximateVectorSearchOptions:使用此选项类型以启用可能不会返回精确最接近向量的搜索。在实例化此类型时,您可以传递一个 numCandidates 参数来指定要考虑的最近邻数量。

    有关使用 Atlas 向量搜索功能的更多信息,请参阅Atlas 向量搜索快速入门 并从语言下拉菜单中选择Kotlin (同步).

  • 为来自 kotlinx-datetime 库的序列化器提供支持,这些序列化器可以将 Kotlin 日期和时间类型映射为预期的 BSON 类型而不是字符串。有关更多信息,请参阅 Kotlin 序列化指南中的 序列化日期和时间 部分。

  • 支持 JsonElement 值的序列化。要使用 JsonElement 类型,必须在您的应用程序中添加 kotlinx-serialization-json 库作为依赖项。

5.1.3 版本的驱动程序补丁发布包含以下更改

  • 修复了在使用 Cursor 类型时可能引发断言错误的问题。

5.1.2版本驱动程序补丁发布包含以下更改

  • 支持对带有可空泛型参数类型的Kotlin数据类进行编码。例如,您可以在以下代码中编码Container

    @Serializable
    data class Box<T>(
    val boxed: T
    )
    @Serializable
    data class Container(
    val box: Box<String?>
    )

5.1.1版本驱动程序补丁发布包含以下更改

  • 当使用MONGODB-OIDC身份验证机制时,连接字符串值中的authMechanismProperties不得包含逗号字符。

警告

本版本弃用功能

为了避免驱动程序未来主要版本中发生破坏性更改,请替换任何依赖于已弃用程序元素的代码。

本节包含以下信息

  • 对 MongoDB Server v3.6 的支持已被弃用,将在下一个驱动程序版本发布中删除。有关如何升级 MongoDB Server 部署的信息,请参阅 MongoDB Server 手册中的发行说明

  • 对 GraalVM 原生图像技术的内部测试。这些测试涉及使用 GraalVM native-image 工具构建原生应用程序。

  • 增强了 MONGODB-OIDC 身份验证机制的支持。

  • 修复了在使用多态 MongoCollection 实例时使用不正确编解码器的问题。这确保在使用 bson-kotlinx 时不会丢失判别信息。

  • 修复了在解码时类判别器是第一个字段的问题,导致使用多态 MongoCollection 实例时出现字段类型错误。

  • 支持多态序列化。更多内容,请参阅Kotlin序列化指南中的多态序列化部分。

  • 引入了serverMonitoringMode连接URI选项。更多内容,请参阅指定连接选项指南。

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

  • KotlinSerializerCodecProvider构造函数现在接受serializersModulebsonConfiguration对象

    KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration)

    这使得自定义配置更加容易。

  • 修复了导致容器类型擦除的Kotlin反射错误。

返回

验证驱动程序签名