Overview
了解以下版本中的新功能:
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 Server 4.2。有关更多信息,请参阅MongoDB 软件生命周期时间表。
要了解有关此版本的更多信息,请参阅 v4.4.0 版本说明。
4.3.1 中的新功能
4.3.1驱动程序发布修复以下错误:
- 修复了 4.2.0 中引入的回归。其中
findOneAnd*操作在选项明确设置为false时,错误地将upsert设置为true。
要了解有关此版本的更多信息,请参阅 v4.3.1 版本说明。
4.3 的新增功能
4.3驱动程序版本包括以下新功能:
- Adds support for ingress connection rate limiting features. You can use the
enableOverloadRetargetingandmaxAdaptiveRetriesoptions to improve behavior when connected to overloaded servers. These features will be available on Atlas clusters running MongoDB 9.0 and later. To learn more about these options, see the Specify Connection Options guide.
该发布包括以下错误修复:
- 为
bsoncxx::vector::iterators中声明的类类型添加缺失的下标操作符。
此发布包含以下弃用内容:
- 弃用了对 Visual Studio 2015 的支持,该工具已于 2025 10 月终止支持。使用 Visual Studio 2017 或更高版本。
要学习;了解有关此发布的更多信息,请参阅Github上的 v4.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; ... } 有关备用实施,请参阅
mongo-cxx-driverGitHub 存储库中的驱动程序 4.2 变更日志。
该发布包括以下错误修复:
- 修复了以下问题:驱动程序在将
mongocxx::result::insert_many结果与非 ObjectId ID 进行比较时错误地引发异常。
要学习;了解有关此发布的更多信息,请参阅Github上的 v4.2 发布说明。
4.1 中的新增功能
v4.1驱动程序发布包括以下新功能:
为
mongocxx::v_noabi::options::index中新添加的storage_engine()方法弃用了storage_options()方法修复了 v4.0发布中指出的 C 驱动程序 API 版本错误
添加了对最初针对 v4.0 发布的
ENABLE_TESTS配置默认选项的更改。有关更多信息,请参阅升级页面上的破坏性变更 (breaking change)说明。
要学习;了解有关此发布的更多信息,请参阅Github上的 v4.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上的 v4.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上的 v3.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上的 v3.10 发布说明。
3.9 中的新功能
v3.9驱动程序发布包括以下新功能:
C++驱动程序容器映像现已在Docker Hub。上提供。
如果您未提供,驱动程序会自动下载MongoDB C驱动程序依赖项。
驱动程序不再将测试构建为
all目标的一部分。要构建测试,请将BUILD_TESTING=ON设立为 CMake 配置的一部分。如果系统未提供,驱动程序会使用
FetchContent模块而不是ExternalProject模块来下载和构建 MNMLSTC 核心 polyfill 库。它也不会修补 MNMLSTC Core 标头中的include指令。添加 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上的 v3.9 发布说明。