Overview
MongoDB C 驱动程序由两个库组成:libbson 和 libmongoc。在此页面上,您可以学习;了解每个版本的驱动程序库中所做的更改和弃用。
了解以下版本中的新功能:
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.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()函数。新增对“正在使用的加密”数据加密密钥的缓存生命周期配置的支持。 要配置此功能,请使用
mongoc_auto_encryption_opts_set_key_expiration()和mongoc_client_encryption_opts_set_key_expiration()函数。添加对更新和替换操作的
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文件以简化构建考虑更多可重试的错误