Overview
了解以下版本中的新功能:
4.5.1 中的新增功能
4.5.1驾驶员发布包括以下更改:
重要
C++驾驶员v4.5.1 包含对 CVE-2026 -81522 的修复。
要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。51
4.5 中的新增功能
4.5 驱动程序发布包括以下新功能:
- 将
append_metadata()方法添加到mongocxx::v1::client和mongocxx::v1::pool类。在初始化客户端或池后,使用此方法将握手元数据附加到客户端或池。如果项目将 C++ 驱动程序封装起来,并且必须向 MongoDB Server 识别自身,则此功能十分有用。
此版本包含以下删除:
- 删除对 Visual Studio 2015 的支持,该版本已于 2025 年 10 月结束生命周期。要在 Windows 上构建 C++ 驱动程序,请使用 Visual Studio 2017 版本 15.9 或更高版本。
要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。50
4.4 中的新增功能
4.4驱动程序版本包括以下新功能:
bsoncxx和mongocxx库的稳定 ABI (v1) 现已可用于生产环境。两个库的 soversion 现已设置为1。通过
mongocxx::client_bulk_write类增加对客户端批量写入操作的支持。与集合级别的批量写入 (mongocxx::bulk_write) 不同,客户端批量写入支持跨多个集合进行写入,并且可以将插入、更新和删除操作组合在同一个网络负载中。此功能需要 MongoDB Server 8.0 或更高版本。增加对
delete、insert、replace、bulkWrite、findOneAnd*、count和distinct操作的readConcern选项的支持。增加对带有 Azure IMDS 和 Azure Functions/App Service Environment 的
MONGODB-OIDC身份验证机制的支持。要了解更多信息,请参阅 开放 ID 连接 (OIDC) 身份验证。
此发布包含以下弃用内容:
- 弃用对MongoDB Server4.2 的支持。有关更多信息,请参阅MongoDB软件生命周期时间表。
要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。40
4.3.1 中的新功能
4.3.1驱动程序发布修复以下错误:
- 修复了 4.2.0 中引入的回归。其中
findOneAnd*操作在选项明确设置为false时,错误地将upsert设置为true。
要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。31
4.3 的新增功能
4.3驱动程序版本包括以下新功能:
- 添加对入口连接速率限制功能的支持。您可以使用
enableOverloadRetargeting和maxAdaptiveRetries选项来改善连接到负载过重的服务器时的行为。这些功能将在运行 MongoDB 9.0 及更高版本的 Atlas 集群上可用。要了解有关这些选项的更多信息,请参阅指定连接选项指南。
该发布包括以下错误修复:
- 为
bsoncxx::vector::iterators中声明的类类型添加缺失的下标操作符。
此发布包含以下弃用内容:
- 弃用了对 Visual Studio 2015 的支持,该工具已于 2025 10 月终止支持。使用 Visual Studio 2017 或更高版本。
要学习;了解有关此发布的更多信息,请参阅 GitHub 4上的 v.3 发布说明。
4.2 的新增功能
4.2驱动程序版本包括以下新功能:
引入C++驱动程序稳定 ABI (v1.0)供实验使用。作为此更改的一部分,对不稳定的 ABI 进行了重大破坏性变更 (breaking change)。当您升级到 v4.2驱动程序时,我们建议您迁移到应用程序中使用稳定 ABI。
使用 mongocxx 导出宏而不是 bsoncxx 导出宏正确导出
mongocxx::v_noabi::options::index中的storage_engine() const。添加变更流辅助工具/辅助程序
mongocxx::v1::change_stream::next()和mongocxx::v1::change_stream::try_next()以简化迭代变更流。通过
mongocxx::v1::text_options添加对正在使用的加密文本索引的实验性支持。删除对MongoDB Server 4.2 的支持。有关更多信息,请参阅MongoDB软件生命周期时间表。
删除对 macOS 11 和 macOS 12 的支持(在 v4.1 中已弃用)。
重命名 CMake包配置文件以使用
<name>Config.cmake和<name>ConfigVersion.cmake模式,以便与MongoDB C驱动程序2.0.0 及更高版本一致性。弃用了
mongocxx::v_noabi::instance::current()。我们建议实例化一个对所有mongocxx操作都有效的非全局instance变量,如以下代码所示:int main() { mongocxx::instance instance; ... } 有关备用实现,请参阅 42
mongo-cxx-driverGitHub存储库中的驱动程序. 变更日志。
该发布包括以下错误修复:
- 修复了以下问题:驱动程序在将
mongocxx::result::insert_many结果与非 ObjectId ID 进行比较时错误地引发异常。
要学习;了解有关此发布的更多信息,请参阅 GitHub 4上的 v.2 发布说明。
4.1 中的新增功能
v4.1驱动程序发布包括以下新功能:
为
mongocxx::v_noabi::options::index中新添加的storage_engine()方法弃用了storage_options()方法修复了 v. 发布中指出的C驾驶员API版本错误40
添加了对最初针对 v4.0 发布的
ENABLE_TESTS配置默认选项的更改。有关更多信息,请参阅升级页面上的破坏性变更 (breaking change)说明。
要学习;了解有关此发布的更多信息,请参阅 GitHub 4上的 v.1 发布说明。
4.0 中的新增功能
v4.0驱动程序发布包括以下新功能:
- 为
mongocxx::options::change_stream实例的start_at_operation_time字段添加 getter 方法。
该发布包含以下错误:
- 当多次配置 CMake项目时,CMake 可能会错误地将自动下载的C驱动程序的API版本设立为
0.0.0;或者,当在初始配置期间显式设立BUILD_VERSION时,CMake 可能会错误地将 API 版本设置为与C++驱动程序的API版本相同的值。仅当使用find_package()找不到现有的 C 驱动程序安装时,CMake 才会自动下载带有 C++ 驱动程序的 C 驱动程序。该错误将在即将发布的补丁版本中得到修复。
要学习;了解有关此发布的更多信息,请参阅 GitHub 4上的 v.0 发布说明。
3.11 中的新功能
v3.11驱动程序发布包括以下新功能:
新增支持MongoDB Server v 8.0的支持。
添加支持Queryable Encryption范围查询的支持。 要使用此功能,您的应用必须连接到MongoDB Server 8.0或更高版本。 有关Queryable Encryption的更多信息,请参阅MongoDB Server手册中的Queryable Encryption 。
为
mongocxx::v_noabi::bulk_write添加empty()成员函数。
该发布包含以下错误:
- 当多次配置 CMake项目时,CMake 可能会错误地将自动下载的C驱动程序的API版本设立为
0.0.0;或者,当在初始配置期间显式设立BUILD_VERSION时,CMake 可能会错误地将 API 版本设置为与C++驱动程序的API版本相同的值。仅当使用find_package()找不到现有的 C 驱动程序安装时,CMake 才会自动下载带有 C++ 驱动程序的 C 驱动程序。该错误将在即将发布的补丁版本中得到修复。
要学习;了解有关此发布的更多信息,请参阅 GitHub 3上的 v.11 发布说明。
3.10 中的新功能
v3.10.0驱动程序发布包括以下新功能:
添加提供
bsoncxx和mongocxx类类型的非定义声明的正向标头。驱动程序不支持用户定义的任何库实体的前向声明。要获取库实体的声明或定义,请始终包含相应的标头。当未请求 polyfill 库时,CMake 选项
ENABLE_BSONCXX_USE_POLY_IMPLS允许默认选择C++ 17 polyfill 的bsoncxx实现。 此选项默认为OFF。CMake 选项
BSONCXX_POLY_USE_IMPLS允许选择C++17 polyfill 的bsoncxx实现,而不是外部库或C++标准库。 此选项默认为OFF。bsoncxx::v_noabi和mongocxx::v_noabi命名空间不再声明为内联命名空间。 根命名空间声明仍受支持,且应与其之前的定义保持等效。 示例,bsoncxx::document仍然相当于bsoncxx::v_noabi::document,mongocxx::client仍然相当于mongocxx::v_noabi::client。默认,当使用 MSVC 编译库文件名时(由 CMake 的
MSVC变量检测),它们会嵌入 ABI标签string 。 这些字符串类似于以下内容:bsoncxx-v_noabi-rhs-x64-v142-md.lib 要禁用此行为,请将
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=OFF设立为 CMake 配置的一部分。ABI标签string也可以嵌入到 pkg-config元数据文件名中,如下所示:
libbsoncxx-v_noabi-rhs-x64-v142-md.pc 要启用此行为,设立
ENABLE_ABI_TAG_IN_LIBRARY_FILENAMES=ON和ENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ON设置为 CMake 配置的一部分。
要学习;了解有关此发布的更多信息,请参阅 GitHub 3上的 v.10 发布说明。
3.9 中的新功能
v3.9驱动程序发布包括以下新功能:
C++驱动程序容器映像现已在Docker Hub。上提供。
如果您未提供,驱动程序会自动下载MongoDB C驱动程序依赖项。
驱动程序不再将测试构建为
all目标的一部分。要构建测试,请将BUILD_TESTING=ON设立为 CMake 配置的一部分。如果系统未提供,驾驶员会使用
FetchContent模块而不是 模块来下载和构建MNMLSTC 核心 polyfillExternalProject库。它也不会修补includeMNMLSTC Core 标头中的 指令。添加 CMake 选项
MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX。 如果此选项设立为TRUE,则CMAKE_INSTALL_PREFIX选项默认为构建目录。 此选项的默认值为TRUE。添加用于管理MongoDB 搜索索引的API。
将
VERSIONINFO资源添加到bsoncxx.dll和mongocxx.dll。明确记录从 APM回调中引发异常是未定义行为。
在 CMake构建步骤中,不会过早安装 MNMLSTC Core 标头。
要求所有已安装的C++驱动程序包配置通过
find_dependency()找到MongoDB C驱动程序CMake包。
要学习;了解有关此发布的更多信息,请参阅 GitHub 3上的 v.9 发布说明。