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

升级驱动程序版本

在此页面上

  • Overview
  • 重大更改

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

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

  • 确保新的C++驾驶员版本与应用程序连接到的MongoDB Server版本以及编译应用程序时使用的C++标准版本兼容。 有关版本兼容性信息,请参阅 C++驾驶员兼容性页面。

  • 重大更改部分中,解决应用程序正在使用的驾驶员版本与计划升级版本之间发生的任何重大更改。

提示

为了确保在升级驾驶员版本时跨MongoDB Server版本的兼容性,请使用Stable API。

注意

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

有关更多信息,请参阅API和 ABI 版本控制。

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

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

例子

从版本3.0升级

如果您要将C++驾驶员从版本3.0升级到版本3.10 ,请解决为版本3.1到3.10列出的所有重大更改(如有)。

  • 删除了对MongoDB Server v 3.6的支持。

  • 需要MongoDB C驱动程序v 1.28.0或更高版本。

  • 删除 bsoncxx ABI 中以下私有成员函数的导出:

    • bsoncxx::v_noabi::types::bson_value::value::value(const uint8_t*, uint32_t, uint32_t, uint32_t)

    • bsoncxx::v_noabi::types::bson_value::view::_init(void*)

    • bsoncxx::v_noabi::types::bson_value::view::view(const uint8_t*, uint32_t, uint32_t, uint32_t)

    • bsoncxx::v_noabi::types::bson_value::view::view(void*)

  • 删除 mongocxx ABI 中以下私有成员函数的导出:

    • mongocxx::v_noabi::options::change_stream::as_bson()

    • mongocxx::v_noabi::options::aggregate::append(bsoncxx::v_noabi::builder::basic::document&)

    • mongocxx::v_noabi::options::index::storage_options()

  • 使用 MSVC 编译时,使用__cdecl声明所有导出函数符号。 如果您在构建项目时使用替代的默认调用约定,则这是一项 ABI破坏性变更 (breaking change)。

此驱动程序版本引入了以下破坏性变更 (breaking change):

  • 删除了对find_package(libbsoncxx)find_package(libmongocxx)的支持。 请改用find_package(bsoncxx)find_package(mongocxx)

  • 删除支持旧版 CMake包配置文件提供的LIBBSONCXX_*LIBMONGOCXX_* CMake 变量的支持。 请改用mongo::bsoncxx_*mongo::mongocxx_* CMake 目标。

  • 删除作为 polyfill 选项的实验性C++标准库 ( BSONCXX_POLY_USE_STD_EXPERIMENTAL )。

此驱动程序版本引入了以下破坏性变更 (breaking change):

  • 删除了对 CMake项目构建树中导出目标的支持

  • 删除支持macOS 10.14 、macOS 10.15和Ubuntu 14.04的支持

  • 需要MongoDB C驱动程序v 1.25.0或更高版本

  • 需要 CMake v 3.15或更高版本

对于3.8 及更早版本的驾驶员,请参阅 GitHub 上每个发布的发布说明和相关 JIRA 票证Github

后退

新增功能

在此页面上