Overview
MongoDB C驱动程序由两个库组成:libbson
和 libmongoc
。 在此页面上,您可以学习;了解每个版本的驾驶员程序库中所做的更改和弃用。
了解以下版本中的新功能:
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 密钥的问题。
有关此发布的更多信息,请参阅 v1.30.5 发布说明。
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()
函数的性能
修复
传递
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_t
Adds
serverMonitoringMode
URI 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
文件以简化构建考虑更多可重试的错误