对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

版本说明

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

4.5.1驾驶员发布包括以下更改:

重要

C++驾驶员v4.5.1 包含对 CVE-2026 -81522 的修复。

有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。

要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。51

4.5 驱动程序发布包括以下新功能:

  • append_metadata() 方法添加到 mongocxx::v1::clientmongocxx::v1::pool 类。在初始化客户端或池后,使用此方法将握手元数据附加到客户端或池。如果项目将 C++ 驱动程序封装起来,并且必须向 MongoDB Server 识别自身,则此功能十分有用。

此版本包含以下删除:

  • 删除对 Visual Studio 2015 的支持,该版本已于 2025 年 10 月结束生命周期。要在 Windows 上构建 C++ 驱动程序,请使用 Visual Studio 2017 版本 15.9 或更高版本。

要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。50

警告

重大更改

C++驱动程序v4.4包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 4.4

4.4驱动程序版本包括以下新功能:

  • bsoncxxmongocxx 库的稳定 ABI (v1) 现已可用于生产环境。两个库的 soversion 现已设置为 1

  • 通过 mongocxx::client_bulk_write 类增加对客户端批量写入操作的支持。与集合级别的批量写入 (mongocxx::bulk_write) 不同,客户端批量写入支持跨多个集合进行写入,并且可以将插入、更新和删除操作组合在同一个网络负载中。此功能需要 MongoDB Server 8.0 或更高版本。

  • 增加对 deleteinsertreplacebulkWritefindOneAnd*countdistinct 操作的 readConcern 选项的支持。

  • 增加对带有 Azure IMDS 和 Azure Functions/App Service Environment 的 MONGODB-OIDC 身份验证机制的支持。要了解更多信息,请参阅 开放 ID 连接 (OIDC) 身份验证。

此发布包含以下弃用内容:

要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。40

4.3.1驱动程序发布修复以下错误:

  • 修复了 4.2.0 中引入的回归。其中 findOneAnd* 操作在选项明确设置为 false 时,错误地将 upsert 设置为 true

要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..4 发布说明。31

警告

重大更改

C++驱动程序v4.3包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 4.3

4.3驱动程序版本包括以下新功能:

  • 添加对入口连接速率限制功能的支持。您可以使用 enableOverloadRetargetingmaxAdaptiveRetries 选项来改善连接到负载过重的服务器时的行为。这些功能将在运行 MongoDB 9.0 及更高版本的 Atlas 集群上可用。要了解有关这些选项的更多信息,请参阅指定连接选项指南。

该发布包括以下错误修复:

  • bsoncxx::vector::iterators 中声明的类类型添加缺失的下标操作符。

此发布包含以下弃用内容:

  • 弃用了对 Visual Studio 2015 的支持,该工具已于 2025 10 月终止支持。使用 Visual Studio 2017 或更高版本。

要学习;了解有关此发布的更多信息,请参阅 GitHub 4上的 v.3 发布说明。

警告

重大更改

C++驱动程序v4.2包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 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;
    ...
    }

    有关备用实现,请参阅 42mongo-cxx-driverGitHub存储库中的驱动程序. 变更日志。

该发布包括以下错误修复:

  • 修复了以下问题:驱动程序在将 mongocxx::result::insert_many 结果与非 ObjectId ID 进行比较时错误地引发异常。

要学习;了解有关此发布的更多信息,请参阅 GitHub 4上的 v.2 发布说明。

警告

重大更改

C++驱动程序v4.1包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 4.1

v4.1驱动程序发布包括以下新功能:

要学习;了解有关此发布的更多信息,请参阅 GitHub 4上的 v.1 发布说明。

警告

重大更改

C++驱动程序v4.0包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 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 发布说明。

警告

重大更改

C++驱动程序v3.11包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 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 发布说明。

警告

重大更改

C++驱动程序v3.10包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 3.10

v3.10.0驱动程序发布包括以下新功能:

  • 添加提供 bsoncxxmongocxx 类类型的非定义声明的正向标头。驱动程序不支持用户定义的任何库实体的前向声明。要获取库实体的声明或定义,请始终包含相应的标头。

  • 当未请求 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_noabimongocxx::v_noabi命名空间不再声明为内联命名空间。 根命名空间声明仍受支持,且应与其之前的定义保持等效。 示例, bsoncxx::document仍然相当于bsoncxx::v_noabi::documentmongocxx::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=ONENABLE_ABI_TAG_IN_PKGCONFIG_FILENAMES=ON设置为 CMake 配置的一部分。

要学习;了解有关此发布的更多信息,请参阅 GitHub 3上的 v.10 发布说明。

警告

重大更改

C++驱动程序v3.9包含重大更改。有关更多信息,请参阅《升级驱动程序版本》指南中的版本 3.9

v3.9驱动程序发布包括以下新功能:

  • C++驱动程序容器映像现已在Docker Hub。上提供。

  • 如果您未提供,驱动程序会自动下载MongoDB C驱动程序依赖项。

  • 驱动程序不再将测试构建为 all 目标的一部分。要构建测试,请将 BUILD_TESTING=ON设立为 CMake 配置的一部分。

  • 如果系统未提供,驾驶员会使用FetchContent 模块而不是 模块来下载和构建MNMLSTC 核心 polyfillExternalProject 库。它也不会修补include MNMLSTC Core 标头中的 指令。

  • 添加 CMake 选项MONGOCXX_OVERRIDE_DEFAULT_INSTALL_PREFIX 。 如果此选项设立为TRUE ,则CMAKE_INSTALL_PREFIX选项默认为构建目录。 此选项的默认值为TRUE

  • 添加用于管理MongoDB 搜索索引的API。

  • VERSIONINFO资源添加到bsoncxx.dllmongocxx.dll

  • 明确记录从 APM回调中引发异常是未定义行为。

  • 在 CMake构建步骤中,不会过早安装 MNMLSTC Core 标头。

  • 要求所有已安装的C++驱动程序包配置通过 find_dependency() 找到MongoDB C驱动程序CMake包。

要学习;了解有关此发布的更多信息,请参阅 GitHub 3上的 v.9 发布说明。