新增功能
了解
5.2 中的新增功能
重要
移除对 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-1
和SCRAM-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 文档中的 可达性元数据。
此更改不添加
libjnidispatch
和libmongocrypt
资源条目,因为为所有支持的平台(目标)添加条目将显着影响使用 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 版本的新增功能
5.1.3 版本的驱动程序补丁发布包含以下更改
修复了在使用
Cursor
类型时可能引发断言错误的问题。
5.1.2版本更新内容
5.1.2版本驱动程序补丁发布包含以下更改
支持对带有可空泛型参数类型的Kotlin数据类进行编码。例如,您可以在以下代码中编码
Container
类data class Box<T>( val boxed: T ) data class Container( val box: Box<String?> )
5.1.1版本更新内容
5.1.1版本驱动程序补丁发布包含以下更改
当使用
MONGODB-OIDC
身份验证机制时,连接字符串值中的authMechanismProperties
不得包含逗号字符。
5.1版本更新内容
警告
本版本弃用功能
为了避免驱动程序未来主要版本中发生破坏性更改,请替换任何依赖于已弃用程序元素的代码。
本节包含以下信息
5.1 版本的弃用功能
对 MongoDB Server v3.6 的支持已被弃用,将在下一个驱动程序版本发布中删除。有关如何升级 MongoDB Server 部署的信息,请参阅 MongoDB Server 手册中的发行说明。
5.1 版本的改进
对 GraalVM 原生图像技术的内部测试。这些测试涉及使用 GraalVM native-image 工具构建原生应用程序。
增强了
MONGODB-OIDC
身份验证机制的支持。
修复了在使用多态
MongoCollection
实例时使用不正确编解码器的问题。这确保在使用bson-kotlinx
时不会丢失判别信息。修复了在解码时类判别器是第一个字段的问题,导致使用多态
MongoCollection
实例时出现字段类型错误。
5.1版本新增功能
5.0版本新增功能
5.0版本驱动程序的新功能包括
KotlinSerializerCodecProvider
构造函数现在接受serializersModule
和bsonConfiguration
对象KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration) 这使得自定义配置更加容易。
修复了导致容器类型擦除的Kotlin反射错误。