Overview
本页介绍了升级到新版本的C驾驶员时必须对应用应用程序进行的更改。
升级前,请执行以下操作:
确保新的C驾驶员版本与应用程序连接到的MongoDB Server版本以及应用程序运行的平台兼容。 有关版本兼容性信息,请参阅 C驾驶员兼容性页面。
在 重大更改部分中,解决应用程序使用的当前驾驶员版本与计划升级版本之间发生的任何重大更改。要学习;了解有关MongoDB Server发布更改的更多信息,请参阅服务器版本兼容性更改部分。
提示
为了最大限度地减少应用程序将来升级驾驶员版本时所需的更改数量,请使用 Stable API。 要学习;了解更多信息,请参阅 Stable API指南。
重大更改
注意
C驾驶员遵循语义版本控制。该驾驶员可能会破坏任何发布中的构建系统或包兼容性。 补丁版本可能会恢复意外的API重大更改。
重大更改是对从特定版本的驱动程序开始的约定或行为的更改。 如果在升级驱动程序之前未解决,此类更改可能会导致应用程序无法正常工作。
本部分中的破坏性变更 (breaking change) 按引入它们的驱动程序版本进行分类。升级驱动程序版本时,请解决当前版本和升级版本之间的所有破坏性变更 (breaking change)。
C驾驶员由两个库组成:libbson
和 libmongoc
。本指南的各部分介绍了每个库中包含的重大更改。
例子
升级到版本 2.0.0
如果您要将C驾驶员从版本 1.x 升级到版本 2.0.0,解决版本 1.x 直至(包括)版本 2.0.0 列出的所有重大更改
版本 2.0.0
libbson v2.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 v2.0.0 中的重大更改
libmongoc
的 2.0发布包含以下重大更改:
如果将
batchSize:0
选项传递给mongoc_client_watch
、mongoc_database_watch
或mongoc_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_opts
在mongoc_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
将使用静态库。
版本 1.29.0
libmongoc v1.29.0 中的重大更改
libmongoc
的 1.29.0发布包含以下重大更改:
删除对 Visual Studio 2013 的支持
将所需的
libmongocrypt
依赖项版本提高到 1.12.0,以支持“正在使用的加密”功能
版本 1.28.0
libbson v1.28.0 中的重大更改
libbson
的 1.28.0发布包含以下重大更改:
删除
ccache
的自动检测和使用删除
Mongo_USE_CCACHE
libmongoc v1.28.0 中的重大更改
libmongoc
的 1.28.0发布包含以下重大更改:
将最低传输协议版本从
6
提高到7
将所需的
libmongocrypt
版本提高到 v1.11.0 以支持正在使用的加密
版本 1.27.0
libmongoc v1.27.0 中的重大更改
libmongoc
的 1.27.0发布包含以下重大更改:
将所需的 libmongocrypt 版本提高到 1.10.0 以支持正在使用的加密。这对应于 CMake 选项
ENABLE_CLIENT_SIDE_ENCRYPTION
。
版本 1.26.2
libmongoc v1.26.2 中的重大更改
libmongoc
的 1.26.2发布包含以下重大更改:
默认下,禁用在Windows上使用 Cyrus SASL 加载插件。 要重新启用,请将 CMake 选项
CYRUS_PLUGIN_PATH_PREFIX
设立为 Cyrus SASL 插件的绝对路径前缀。
版本 1.24
libmongoc v1.24 中的重大更改
libmongoc
的 1.24发布包含以下重大更改:
需要MongoDB Server 7.0 及更高版本才能使用Queryable Encryption
服务器版本兼容性更改
服务器版本兼容性更改是对驱动程序的修改,停止对一组 MongoDB 服务器版本的支持。
该驱动程序在 MongoDB Server 版本的生命周期结束 (EOL) 后将停止支持。
要学习;了解有关MongoDB对 EOL 产品的支持的更多信息,请参阅传统支持策略。