Docs 菜单
Docs 主页
/ / /
Kotlin 协程

新增功能

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

  • 版本 5.1.3

  • 版本 5.1.2

  • 版本 5.1.1

  • 版本 5.1

  • 版本 5.0

  • 版本 4.11

  • 版本 4.10

5.1.3 驾驶员补丁发布包括以下更改:

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

5.1.2 驾驶员补丁发布包括以下更改:

  • 支持使用可为 null 的泛型参数类型编码Kotlin数据类。 示例,您可以在以下代码中对Container类进行编码:

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

5.1.1 驾驶员补丁发布包括以下更改:

  • 使用 MONGODB-OIDC身份验证机制时,不得在 authMechanismProperties 连接string值中包含逗号字符。 要学习;了解有关此行为的更多信息,请参阅企业身份验证指南的 MONGODB-OIDC部分。

警告

此版本中的弃用内容

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

本部分包括以下信息:

  • 对 MongoDB 服务器 v 3.6的支持已弃用,并将在下一驱动程序版本中删除。 要了解如何升级 MongoDB Server 部署,请参阅 MongoDB Server 手册中的发布说明

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

  • 增强了对 MONGODB-OIDC身份验证机制的支持。要学习;了解有关 OIDC 的更多信息,请参阅 企业身份验证机制指南中的 企业身份验证机制 部分。

  • 修复了以下问题:在使用多态MongoCollection实例时,操作使用了不正确的编解码器。 这可确保使用bson-kotlinx时鉴别器信息不会丢失。

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

  • 支持多态序列化。 要学习;了解更多信息,请参阅Kotlin序列化指南的多态序列化部分。

  • 引入serverMonitoringMode连接 URI 选项。 要学习;了解更多信息,请参阅连接选项指南。

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

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

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

    这样可以更轻松地自定义配置。

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

本部分包括以下信息:

警告

此版本中的弃用内容

为避免驱动程序未来的主要版本出现破坏性更改,请替换任何依赖于弃用方法和类型的应用程序代码。

4.11 版驱动程序已弃用以下内容:

  • 以下与网络地址相关的方法已弃用,并将在 v5.0 中删除:

    • ServerAddress 方法 getSocketAddress()getSocketAddresses()

      使用 java.net.InetAddressgetByName() 实例方法,而不是 getSocketAddress()

      使用 java.net.InetAddressgetAllByName() 实例方法,而不是 getSocketAddresses()

    • UnixServerAddress 方法 getUnixSocketAddress()

      构建 jnr.unixsocket.UnixSocketAddress 实例,而不是 getUnixSocketAddress()。将 UNIX 套接字文件的完整路径传递给构造函数。默认情况下,MongoDB 会创建位于 "/tmp/mongodb-27017.sock" 的 UNIX 套接字文件。要了解有关 UnixSocketAddress 的详情,请参阅 UnixSocketAddress API 文档。

  • 以下与StreamFactory接口相关的方法和类型已弃用,并计划在 v5.0 中删除:

    • streamFactoryFactory() 方法来自 MongoClientSettings.Builder

    • getStreamFactoryFactory() 方法来自 MongoClientSettings

    • NettyStreamFactoryFactory class

    • NettyStreamFactory class

    • AsynchronousSocketChannelStreamFactory class

    • AsynchronousSocketChannelStreamFactoryFactory class

    • BufferProvider class

    • SocketStreamFactory class

    • Stream class

    • StreamFactory class

    • StreamFactoryFactory class

    • TlsChannelStreamFactoryFactory class

    如果使用 MongoClientSettings.Builder.streamFactoryFactory() 来配置 Netty,则代码可能如下所示:

    import com.mongodb.connection.netty.NettyStreamFactoryFactory;
    // ...
    MongoClientSettings settings = MongoClientSettings.builder()
    .streamFactoryFactory(NettyStreamFactoryFactory.builder().build())
    .build();

    将此代码替换为 TransportSettings.nettyBuilder(),如下例所示:

    import com.mongodb.connection.TransportSettings;
    // ...
    MongoClientSettings settings = MongoClientSettings.builder()
    .transportSettings(TransportSettings.nettyBuilder().build())
    .build();

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

  • 支持使用 SOCKS5 代理连接到 MongoDB。

  • ChangeStreamDocument 类添加 getSplitEvent() 方法,从而识别超过 16 MB 的变更流事件的片段。您必须在变更流中使用聚合阶段 $changeStreamSplitLargeEvent 来处理超过 16 MB 的事件。

  • 已为 $vectorSearch 添加了聚合阶段构建器。

  • 添加了 Atlas Search 索引管理辅助工具。

  • 更新了 Snappy 和 Zstd 压缩库依赖项版本。要了解有关当前依赖项版本的更多信息,请参阅网络压缩

  • 为以下类添加 getElapsedTime() 方法,以监控连接池事件的持续时间:

  • 支持 Java 21 虚拟线程和结构化并发。驱动程序内部结构已更新,以避免不必要地虚拟线程绑定,并保留线程中断状态,后者对于用于取消的结构化并发很重要。

    要了解有关虚拟线程的详细信息,请参阅虚拟线程 JDK 增强提案。要了解有关结构化并发的详细信息,请参阅结构化并发 JDK 增强提案。

  • 已更新以下类型的 API 文档:

重要

从 Kotlin 驱动程序 4.10.1 版开始,您必须将bson-kotlinx库添加为显式依赖项,才能使用kotlinx-serialization库。

  • 支持 Kotlin 服务器端使用,包括协程和同步应用程序。

  • 编解码器对 Kotlin 数据类的支持。

  • 支持kotlinx.serialization

后退

快速参考

在此页面上