Overview
MongoDB C 驱动程序由两个库组成:libbson 和 libmongoc。在此页面上,您可以学习;了解每个版本的驱动程序库中所做的更改和弃用。
了解以下版本中的新功能:
2.3.3 中的新功能
以下各节介绍了C驱动程序2.3.3发布中的更改。
libmongoc
修复
修复使用 CMake 4.4.0 配置驱动程序时发生的错误。
修复在 Windows 上使用
UNICODE构建驱动程序时出现的问题。增加了对 HTTP 处理的更严格验证。
有关此发布的更多信息,请参阅v2.3.3发布说明。
2.3.2 中的新功能
以下各节介绍了C驱动程序2.3.2发布中的更改。
libmongoc
修复
修复了 v2.3.0 中引入的问题失败的
killCursors操作导致应用程序崩溃。修复 SCRAM 身份验证中的错误处理。
有关此发布的更多信息,请参阅v2.3.2发布说明。
2.3.1 中的新功能
以下各节介绍了C驱动程序2.3.1发布中的更改。
libbson
修复
修复
bson_new_from_buffer中的长度检查。修正 Sphinx 9.0+上的文档生成。
libmongoc
改进
在处理启用了
BIO_FLAGS_AUTO_EOF的旧式读取回调中的EAGAIN错误时,提高与 OpenSSL 4.0.0 的向前兼容性。改善解压消息长度限制。
修复
将用户名传播到自定义 OIDC 回调。
修正 Sphinx 9.0+上的文档生成。
有关此发布的更多信息,请参阅v2.3.1发布说明。
2.3.0 中的新功能
以下各节介绍了C驱动程序2.3.0发布中的更改。
libbson
libbson 的 2.3.0发布包括以下更改:
改进
bson_t可轻松重新定位。
弃用
- 弃用
bson_append_array_begin()。请使用bson_append_array_builder_begin()或bson_append_array_unsafe_begin()。
libmongoc
libmongoc 的 2.3.0发布包括以下更改:
新增功能
增加对智能工作负载管理 (IWM)和入口连接限速的支持。驱动程序可处理写入阻塞场景,并在高负载条件下优化连接建立,以维护应用程序的可用性。这些功能将在运行 MongoDB 9.0 及更高版本的 Atlas 集群上可用。
所有命令均支持此功能。
我们建议升级到此驱动程序版本,以避免与超载错误相关的服务器变更影响。如果您未升级,请调整自定义重试逻辑以处理更高的超载错误率。
添加
maxAdaptiveRetriesURI 选项,以配置失败并返回SystemOverloadedError的操作的最大重试次数。默认值为2。添加
enableOverloadRetargetingURI 选项,用以控制SystemOverloadedError的重试是否尝试使用不同的服务器。默认值为false。
添加对在初始化后以每个客户端或每个连接池为基础添加客户端握手元数据的支持。
- 添加
mongoc_client_append_metadata()和mongoc_client_pool_append_metadata()函数,这些函数对包装 C 驱动程序以自我识别的项目很有用。
将 Kubernetes 添加为
MONGODB-OIDC身份验证的凭证提供商。
改进
对客户端超时上的游标处理做出以下改进:
在游标接收客户端超时后发送
killCursors。如果变更流在重复的客户端超时后恢复,则提前退出。
删除
- 删除对 macOS 13 及更早版本的支持。使用 macOS 14 或更新版本。
有关此发布的更多信息,请参阅v2.3.0发布说明。
2.2.3 中的新功能
MongoDB C驱动程序的 2.2.3发布包括以下更改:
重要
MongoDB C驱动程序v2.2.3包括对CVE-2026-4359的修复。
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
2.2.1 中的新功能
MongoDB C驱动程序的 2.2.1发布包括以下更改:
修复了Azure和GCP KMS请求的超时错误。
处理来自服务器且省略
nModified参数的bulkWrite响应。
2.2.0 中的新功能
以下各节介绍了C驱动程序2.2.0发布中的更改。
libbson
libbson 的 2.2.0发布包括以下更改:
修复
提高
bson_get_monotonic_time()在Windows平台上的分辨率。删除对 Visual Studio 2015 的支持。支持的最低版本是 Visual Studio 2017。
弃用
- 不再支持macOS 11 和 macOS 12
libmongoc
libmongoc 的 2.2.0发布包括以下更改:
新增功能
引入以下
MONGODB-OIDC身份验证机制功能:添加对使用
mongoc_client_set_oidc_callback和mongoc_client_pool_set_oidc_callback的自定义回调的支持。通过属性
environment:azure添加对Azure环境的支持。通过属性
environment:gcp添加对GCP环境的支持。此发布不支持Kubernetes环境。
将以下功能添加到
mongoc_bulkwrite_t:- 添加mongoc_bulkwrite_is_acknowledged函数。— 添加了mongoc_bulkwriteresult_serverid函数。— 添加了对Queryable Encryption操作的支持。为Queryable Encryption添加了对文本索引的以下支持:
添加
mongoc_client_encryption_encrypt_text_opts_t类型。仅为实验性工作负载添加对子字符串、前缀和后缀搜索的预览支持。这些功能不稳定,在正式发布 (GA) 之前无法保证其安全性。这些功能的 GA 版本可能无法与预览版本向后兼容。
通过Windows安全渠道在Windows平台上添加对 TLS v1.3 的支持。
修复
迭代关闭的变更流时不尝试恢复。
删除对 Visual Studio 2015 的支持。支持的最低版本是 Visual Studio 2017。
将所需的 libmongocrypt 版本从 1.13.0 提高到 1.15.0。这支持“正在使用的加密” ,并对应于 CMake
ENABLE_CLIENT_SIDE_ENCRYPTION选项。
弃用
- 弃用了对 macOS 11 和 macOS 12 的支持。
有关此发布的更多信息,请参阅v2.2.0发布说明。
2.1.2 中的新功能
以下各节介绍了C驱动程序2.1.2发布中的更改。
libbson
此版本会递增以匹配 libmongoc 版本,但自 2.1.1 以来没有任何更改。
libmongoc
libmongoc 的 2.1.2发布包括以下更改:
修复
- 修复了以下常见漏洞与暴露 (CVE) 问题:如果传递大选项,则使用选项进行批量写入会读取无效内存。要学习;了解详情,请参阅相关的 CVE-2025-12119 问题。
有关此发布的更多信息,请参阅v2.1.2发布说明。
2.1.1 中的新功能
以下各节介绍了C驱动程序2.1.1发布中的更改。
libbson
此版本会递增以匹配 libmongoc 版本,但自 2.1.0 以来没有任何更改。
libmongoc
libmongoc 的 2.1.1发布包括以下更改:
修复
不再在 CMake 目标中传播
-fPIC标志。将写入命令行为应用于
mongoc_collection_create_indexes_with_opts()函数。省略单线程监控命令中的
saslSupportedMechs字段。
有关此发布的更多信息,请参阅v2.1.1发布说明。
2.1.0 中的新功能
以下各节介绍了C驱动程序2.1.0发布中的更改。
libbson
libbson 的 2.1.0发布包括以下更改:
修复
对于非 Windows 环境,卸载脚本现在调用
find "$dir" -maxdepth 1命令来检测非空目录,而不是调用ls --almost-all命令,后者在 macOS 上不受支持。对于Windows环境,卸载脚本不再因不正确的非零
%ERRORLABEL%值而“成功”。删除了对Debian 9 和Debian 10 的支持。
改进
- 将 CMake 策略最高版本设置为
4.0。之前未设置最高版本。
libmongoc
libmongoc 的 2.1.0发布包括以下更改:
修复
对于非 Windows 环境,卸载脚本现在调用
find "$dir" -maxdepth 1命令来检测非空目录,而不是调用ls --almost-all命令,后者在 macOS 上不受支持。对于Windows环境,卸载脚本不再因不正确的非零
%ERRORLABEL%值而“成功”。添加 Window 安全通道支持,以使用较新的签名验证客户端证书。
将
rand()的使用替换为线程安全的替代方案。删除了对Debian 9 和Debian 10 的支持。
改进
将支持的最低MongoDB Server版本从 4.0 更新到 4.2。
将 CMake 策略最高版本设置为
4.0。之前未设置最高版本。删除无用的长期缓冲区以减少内存使用量。
改进了Windows API 生成的错误消息。
2.0.2 中的新功能
以下各节介绍了C驱动程序2.0.2发布中的更改。
libbson
此发布包含对 bson_validate 系列函数的多项修复,以及以下细微的行为更改:
当您指定
BSON_VALIDATE_UTF8设置时,驱动程序会拒绝无效的 UTF-8 序列,而不是像上一个版本一样接受它们。驱动程序使用一设立固定规则验证已弃用的“具有范围的代码”元素中的范围文档,并将其视为不透明的JavaScript对象。
驱动程序在验证期间实施文档嵌套限制。
libmongoc
libmongoc 的 2.0.2发布包括以下更改:
修复
修复了Windows上的
bson_strerror_r消息。修复Windows安全通道的内存泄漏问题。
修复使用Windows安全通道加载 PKCS#8 RSA 密钥的问题。
有关此发布的更多信息,请参阅v2.0.2发布说明。
2.0.1 中的新功能
以下各节介绍了C驱动程序2.0.1发布中的更改。
libbson
libbson 的 2.0.1发布包括以下更改:
修复
- 修复 macOS 操作系统上的 CMake 4 配置错误
libmongoc
libmongoc 的 2.0.1发布包括以下更改:
修复
修复了将C驱动程序配置为使用安全传输或安全渠道库时出现的
MONGODB-X509身份验证的用户名处理问题当
mongoc_bulkwrite_execute()函数在首次写入操作后生成客户端错误时,不再使用部分结果填充mongoc_bulkwritereturn_t.res
有关此发布的更多信息,请参阅v2.0.1发布说明。
2.0.0 中的新功能
以下各节介绍了C驱动程序2.0.0发布中的更改。
libbson
libbson 的 2.0.0发布包括以下更改:
新增功能
- 添加对BSON二进制向量子类型的支持。要学习;了解更多信息,请参阅 libbson API文档中的BSON二进制向量子类型。
libmongoc
libmongoc 的 2.0.0发布包括以下更改:
新增功能
支持聚合操作,其中包括正在使用的加密的
$lookup阶段。要学习;了解更多信息,请参阅MongoDB Server手册中的以下参考资料:
有关此发布的更多信息,请参阅v2.0发布说明。
1.30.6 中的新功能
以下各节介绍了C驱动程序1.30.3发布中的更改。
libbson
此版本会递增以匹配 libmongoc 版本,但自 1.30.6 以来没有任何更改。
libmongoc
libmongoc 的 1.30.6发布包括以下更改:
修复
- 修复了以下常见漏洞与暴露 (CVE) 问题:如果传递大选项,则使用选项进行批量写入会读取无效内存。要学习;了解详情,请参阅相关的 CVE-2025-12119 问题。
有关此发布的更多信息,请参阅v1.30.6发布说明。
1.30.8 中的新功能
MongoDB C驱动程序的 1.30.8发布包括以下更改:
重要
MongoDB C驱动程序v1.30.8包括对CVE-2026-4359的修复。
有关MongoDB安全更新的最新信息,请参阅MongoDB安全公告。
1.30.3 中的新功能
以下各节介绍了C驱动程序1.30.3发布中的更改。
libbson
libbson 的 1.30.3发布包括以下更改:
新增功能
预计 v2.0发布,为
bson添加了新的 CMake 包和导入目标,以便您在不修改 CMake项目的情况下支持这两个主要版本。- 要使用新名称导入
bson,请为bson包调用find_package。新导入的目标名称为bson::static、bson::shared和bson::bson。
libmongoc
libmongoc 的 1.30.3发布包括以下更改:
新增功能
预计 v2.0发布,为
bson和mongoc添加了新的 CMake 包以及导入的目标,以便您在不修改 CMake项目的情况下支持这两个主要版本。要使用新名称导入
mongoc,请为mongoc包调用find_package。新导入的目标名称为mongoc::static、mongoc::shared和mongoc::mongoc。要使用新名称导入
bson,请为bson包调用find_package。新导入的目标名称为bson::static、bson::shared和bson::bson。
有关此发布的更多信息,请参阅v1.30.3发布说明。
1.30.0 中的新功能
以下各节介绍了C驱动程序1.30.0发布中的更改。
libbson
libbson 的 1.30.0发布包括以下更改:
弃用
- 弃用对Debian 9 和Debian 10 的支持
改进
- 改进了嵌套文档的BSON到JSON序列化的性能
修复
更新
bson_as_json_with_opts()函数的截断输出,以不再分割有效的 UTF-8 序列通过以下方式更新生成的JSON文本:
用一个空格序列化所有空数组和文档
将驱动程序由于最大递归限制而省略的数组序列化为
[ ... ]而不是{ ... }对旧版 CodeWScope 文档应用最大递归限制
修复了调用
bson_append_array_builder_begin()函数不成功后输出参数泄漏的问题
libmongoc
libmongoc 的 1.30.0发布包括以下更改:
弃用
- 弃用对Debian 9 和Debian 10 的支持
新增功能
添加对结构化日志记录的支持。 要配置此功能,请使用
mongoc_client_set_structured_log_opts()和mongoc_client_pool_set_structured_log_opts()函数。添加对更新和替换操作的
sort选项的支持。添加了对使用
mongoc_bulkwrite_new()和mongoc_bulkwrite_set_client()函数构造没有客户端的mongoc_bulkwrite_t类型的支持。
改进
- 提高了
mongoc_server_description_new_copy()函数的性能
修复
包括 SDAM 规范 所需的以下 APM事件修复:
传递
server_opening事件后,驱动程序必须传递相应的server_closed事件,然后才能传递topology_closed在传递
topology_closed事件之前,驱动程序会传递一个topology_changed事件,该事件的new_description类型为Unknown
修复了驱动程序在客户端批量写入的详细结果中报告插入的文档 ID 时可能发生的崩溃
有关此发布的更多信息,请参阅v1.30发布说明。
1.29.0 中的新功能
C驱动程序的 1.29.0发布包括多项更改。
libbson
libbson 的 1.29.0发布包括以下更改:
弃用
弃用了
bson_string_t和相关函数弃用编译
BSON_MEMCHECK弃用了
bson_in_range_*()和bson_cmp_*()函数弃用了
bson_atomic_*()和bson_thrd-yield()函数弃用了
bson_as_json()和bson_array_as_json()函数
libmongoc
libmongoc 的 1.29.0发布包括以下更改:
弃用
弃用了
mongoc_client_command。 请改用mongoc_client_command_simple。弃用了
mongoc_database_command。 请改用mongoc_database_command_simple。弃用了
mongoc_collection_command。 请改用mongoc_collection_command_simple。
有关此发布的更多信息,请参阅v1.29发布说明。
1.28.0 中的新功能
C驱动程序的 1.28.0发布包括多项更改。
libbson
libbson 的 1.28.0发布包括以下更改:
新增功能
- 添加
bson_validate_with_error_and_offset()函数
libmongoc
新增功能
新增对“正在使用的加密”范围查询的支持
mongoc_collection_insert_one包括插入ID添加新的批量写入API
mongoc_bulkwrite_tAdds
serverMonitoringModeURI option
弃用
弃用了
*_hint选项。 请改用*_server_id选项。弃用了
mongoc_bulk_operation_set_hint。 请改用mongoc_bulk_operation_set_server_id。弃用了
mongoc_bulk_operation_get_hint。 请改用mongoc_bulk_operation_get_server_id。弃用了
mongoc_cursor_set_hint。 请改用mongoc_cursor_set_server_id。弃用了
mongoc_cursor_get_hint。 请改用mongoc_cursor_get_server_id。
弃用了
ENABLE_SSL=LIBRESSL和mongoc_stream_tls_libressl_new。弃用了Windows平台上的
ENABLE_SASL=CYRUS和CYRUS_PLUGIN_PATH_PREFIX选项。
有关此发布的更多信息,请参阅v1.28发布说明。
1.27.6 中的新功能
C驱动程序的 1.27.6发布包括多项更改。
libbson
libbson 的 1.27.6发布包括以下更改:
修复
- 修复特殊BSON 类型的格式错误的扩展JSON的处理
libmongoc
libmongoc 的 1.27.6发布包括以下更改:
修复
修复 TSan 警告
修复C23 编译
改进
- 记录ACID 事务中命令错误的预期行为
1.27.5 中的新功能
C驱动程序的 1.27.5发布包括多项更改。
libbson
libbson 的 1.27.5发布包括以下更改:
修复
- 修复了大字符串处理
bson_append_utf8
libmongoc
libmongoc 的 1.27.5发布包括以下更改:
修复
- 修复了在
bool或_Bool为宏的环境中可能出现的构建错误
1.27.4 中的新功能
C驱动程序的 1.27.4发布包括多项更改。
libbson
libbson 的 1.27.4发布包括以下更改:
修复
- 修复了 Visual Studio 2013 的构建问题
libmongoc
libmongoc 的 1.27.4发布包括以下更改:
修复
修复读取格式错误的有线协议消息时可能出现的崩溃
修复了 Visual Studio 2013 的构建问题
1.27.3 中的新功能
C驱动程序的 1.27.3发布包括多项更改。
libbson
libbson 的 1.27.3发布包括以下更改:
更改
- 引入有关开发流程的更改,包括新的代码签名和依赖项跟踪。 行为或API没有更改。
libmongoc
libmongoc 的 1.27.3发布包括以下更改:
修复
- 将捆绑的zlib从 1.2.3 升级到 1.3.1
1.27.2 中的新功能
C驱动程序的 1.27.2发布包括多项更改。
libbson
libbson 的 1.27.2发布包括以下更改:
修复
修复时区中冒号的解析
修复了以下错误:无法初始化子文档
bson_iter_visit_all
libmongoc
libmongoc 的 1.27.2发布包括以下更改:
修复
- 关闭与远程服务器的剩余连接
新增功能
- 检查环境变量
MONGO_EXPERIMENTAL_SRV_PREFER_TCP以优先选择 TCP 而不是 SRV 查找
1.27.1 中的新功能
C驱动程序的 1.27.1发布包括多项更改。
libbson
libbson 的 1.27.1发布包括以下更改:
修复
- 修复了
bson_string_new和bson_string_append中的大字符串处理
libmongoc
此版本会递增以匹配 libbson 版本,但自 1.27.0 以来没有任何更改。
1.27.0 中的新功能
C驱动程序的 1.27.0发布包括多项更改。
libbson
此版本会递增以匹配 libbson 版本,但自 1.26.2 以来没有任何更改。
libmongoc
libmongoc 的 1.27.0发布包括以下更改:
修复
- 修复使用空密码配置客户端时可能出现的崩溃
新增功能
将数据库名称添加到命令事件
mongoc_apm_command_failed_get_database_name和mongoc_apm_command_succeeded_get_database_name支持用于正在使用的加密的委托 KMIP协议
支持为每个客户端设置套接字超时
1.26.2 中的新功能
C驱动程序的 1.26.2发布包括多项更改。
libbson
libbson 的 1.26.2发布包括以下更改:
修复
- 修复迭代
bson_strfreev
libmongoc
libmongoc 的 1.26.2发布包括以下更改:
修复
修复了使用包含不完整数据的损坏数据数据块调用
mongoc_gridfs_file_readv时可能出现的挂起问题修复了连接到早于 4.2 的MongoDB服务器版本时使用传统耗尽游标协议进行断言的问题
1.26.1 中的新功能
C驱动程序的 1.26.1发布包括多项更改。
libbson
libbson 的 1.26.1发布包括以下更改:
修复
- 使用对齐分配
bson_array_builder_t
libmongoc
libmongoc 的 1.26.1发布包括以下更改:
修复
- 修复了使用 64 位进行 32 位编译的问题
time_t
1.26.0 中的新功能
C驱动程序的 1.26.0发布包括多项更改。
libbson
此版本会递增以匹配 libmongoc 版本,但自 1.25.4 以来没有任何更改。
libmongoc
libmongoc 的 1.26.0发布包括以下更改:
新增功能
支持命名KMS提供商
如果可能,将分片的片集群中的重试重定向到另一个mongos
改进
在源中添加
VERSION_CURRENT文件以简化构建考虑更多可重试的错误