Docs 菜单
Docs 主页
/ / /
C 驱动程序

升级驱动程序版本

本页介绍了升级到新版本的C驾驶员时必须对应用应用程序进行的更改。

升级前,请执行以下操作:

  • 确保新的C驾驶员版本与应用程序连接到的MongoDB Server版本以及应用程序运行的平台兼容。 有关版本兼容性信息,请参阅 C驾驶员兼容性页面。

  • 重大更改部分中,解决应用程序使用的当前驾驶员版本与计划升级版本之间发生的任何重大更改。要学习;了解有关MongoDB Server发布更改的更多信息,请参阅服务器版本兼容性更改部分。

提示

为了最大限度地减少应用程序将来升级驾驶员版本时所需的更改数量,请使用 Stable API。 要学习;了解更多信息,请参阅 Stable API指南。

注意

C驾驶员遵循语义版本控制。该驾驶员可能会破坏任何发布中的构建系统或包兼容性。 补丁版本可能会恢复意外的API重大更改。

重大更改是对从特定版本的驱动程序开始的约定或行为的更改。 如果在升级驱动程序之前未解决,此类更改可能会导致应用程序无法正常工作。

本部分中的破坏性变更 (breaking change) 按引入它们的驱动程序版本进行分类。升级驱动程序版本时,请解决当前版本和升级版本之间的所有破坏性变更 (breaking change)。

C驾驶员由两个库组成:libbsonlibmongoc。本指南的各部分介绍了每个库中包含的重大更改。

例子

升级到版本 2.0.0

如果您要将C驾驶员从版本 1.x 升级到版本 2.0.0,解决版本 1.x 直至(包括)版本 2.0.0 列出的所有重大更改

libbson 的 2.0.0发布包含以下重大更改:

  • BSON_ERROR_BUFFER_SIZE 宏的值从 504 减少到 503,以保留最终字节以供内部使用。

  • 重命名以下 pkg-config 文件:

    • libbson-1.0:重命名为 bson2

    • libbson-static-1.0:重命名为 bson2-static

  • 删除 bson-1.0 CMake包。相反,请使用 bson 并指定要导入的版本或版本范围,如以下示例所示:

    find_package(bson 1.30...2.0)
  • 重命名以下导入的目标:

    • mongo::bson_static:重命名为 bson::static

    • mongo::bson_shared:重命名为 bson::shared

  • 添加 bson::bson 目标,该目标指向静态库或共享库,具体取决于 BSON_DEFAULT_IMPORTED_LIBRARY_TYPE CMake 选项的值。如果未设立此选项且两种库类型都可用,则 bson::bson 将使用静态库。

libmongoc 的 2.0发布包含以下重大更改:

  • 如果将 batchSize:0 选项传递给 mongoc_client_watchmongoc_database_watchmongoc_collection_watch,则 aggregate 命令将不再忽略并应用该选项。

  • 删除 bson_oid_init_sequence。请改用 bson_oid_init

  • mongoc_server_description_host 的返回类型从 mongoc_host_list_t * 更改为 const mongoc_host_list_t *

  • 对 URI身份验证凭证验证实施以下更改,这些更改在从连接字符串创建新的 mongoc_uri_t对象时应用:

    • 要求所有身份验证机制的用户名均为非空。

    • 验证用户名和密码规范要求,并为指定的身份验证机制返回客户端错误。

    • 对于 MONGODB-AWS身份验证机制,authSource 值默认为 $external

    • 验证 authMechanism 值并返回无效值的客户端错误。

    • 验证 authMechanismProperties 值,并因指定身份验证机制的属性无效而返回客户端错误。

    • 正确解析 authMechanismProperties 值中的冒号 (:) 字符。示例,设置 authMechanismProperties=A:B,C:D:E,F:G 会导致驾驶员将该值解析为 {'A': 'B', 'C': 'D:E,F:G'}。现在解析为 {'A': 'B': 'C': 'D:E', 'F': 'G'}

  • 如果您重复对同一 mongoc_bulk_operation_t 调用 mongoc_bulk_operation_execute,则会产生错误。

  • 对公共API中的函数声明一致应用 __cdecl 调用约定。

  • mongoc_client_set_ssl_opts 忽略池化的 mongoc_client_t 并记录错误。在弹出客户端之前,使用 mongoc_client_pool_set_ssl_optsmongoc_client_pool_t 上设立TLS 选项。

  • mongoc_client_set_ssl_stream_initiator 忽略池化的 mongoc_client_t 并记录错误。

  • 重命名以下 pkg-config 文件:

    • libmongoc-1.0:重命名为 mongoc2

    • libmongoc-static-1.0:重命名为 mongoc2-static

  • 删除 mongoc-1.0 CMake包。相反,请使用 mongoc 并指定要导入的版本或版本范围,如以下示例所示:

    find_package(mongoc 1.30...2.0)
  • 重命名以下导入的目标:

    • mongo::mongoc_static:重命名为 mongoc::static

    • mongo::mongoc_shared:重命名为 mongoc::shared

  • 添加 mongoc::mongoc 目标,该目标指向静态库或共享库,具体取决于 MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE CMake 选项的值。如果未设立此选项且两种库类型都可用,则 mongoc::mongoc 将使用静态库。

libmongoc 的 1.29.0发布包含以下重大更改:

  • 删除对 Visual Studio 2013 的支持

  • 将所需的 libmongocrypt 依赖项版本提高到 1.12.0,以支持“正在使用的加密”功能

libbson 的 1.28.0发布包含以下重大更改:

  • 删除 ccache 的自动检测和使用

  • 删除 Mongo_USE_CCACHE

libmongoc 的 1.28.0发布包含以下重大更改:

  • 将最低传输协议版本从 6 提高到 7

  • 将所需的 libmongocrypt 版本提高到 v1.11.0 以支持正在使用的加密

libmongoc 的 1.27.0发布包含以下重大更改:

  • 将所需的 libmongocrypt 版本提高到 1.10.0 以支持正在使用的加密。这对应于 CMake 选项 ENABLE_CLIENT_SIDE_ENCRYPTION

libmongoc 的 1.26.2发布包含以下重大更改:

  • 默认下,禁用在Windows上使用 Cyrus SASL 加载插件。 要重新启用,请将 CMake 选项 CYRUS_PLUGIN_PATH_PREFIX设立为 Cyrus SASL 插件的绝对路径前缀。

libmongoc 的 1.24发布包含以下重大更改:

  • 需要MongoDB Server 7.0 及更高版本才能使用Queryable Encryption

服务器版本兼容性更改是对驱动程序的修改,停止对一组 MongoDB 服务器版本的支持。

该驱动程序在 MongoDB Server 版本的生命周期结束 (EOL) 后将停止支持。

要学习;了解有关MongoDB对 EOL 产品的支持的更多信息,请参阅传统支持策略。

后退

兼容性

在此页面上