了解以下版本中的新功能:
2.26.1 中的新功能
Ruby驾驶员2.26.1发布包括以下错误修复:
当初始命令失败时,将负载均衡的连接返回到连接池。
修复了以下问题:驱动程序的连接握手将
backpressure字段嵌套在客户端元数据文档内,而不是将其放在握手命令的顶层,该问题可能导致连接失败。减少为命令创建 OpenTelemetry 跟踪范围时的开销。
Raises a
writeConcernErrorin all cases where the server returns one.
要了解有关此版本的更多信息,请参阅 v2.26.1 版本说明。
2.26 中的新功能
重要
此版本删除了对 MongoDB Server 4.2 的支持。如果您使用的是 MongoDB Server 4.2 或更早版本,请升级到 MongoDB Server 4.4 或更高版本。要了解有关此更改的更多信息,请参阅“升级驱动程序版本”指南中的版本 2.26 破坏性变更 (breaking change)。
The Ruby驱动程序2.26 release includes the following new功能、更改和错误修复:
添加
:key_expiration_ms客户端选项,该选项指定数据加密密钥缓存的生存期(以毫秒为单位)。该选项接受非负整数。值为0表示缓存永不过期。默认值为60000。增加对 Queryable Encryption (QE) 文本查询的支持。现在,您可以在加密字段上执行前缀、后缀和子字符串查询。要了解更多信息,请参阅正在使用的加密。
通过 MongoDB Server 9.0 或更高版本的集群上的智能工作负载管理 (IWM) 提高驱动程序的性能。驱动程序现在仅在重试不会加剧服务器状况时才重试过载错误。
禁止在
authMechanismProperties连接字符串选项的值中使用逗号。在删除 QE 集合时咨询服务器端
encryptedFields,以便您可以删除使用自动加密的集合。通过在按文件 ID 查找文件时使用精确匹配,修复 GridFS 中的一个安全问题。
将
libmongocrypt的最低版本要求更新为 1.20.0,并修复ClientEncryption的timeout_ms和范围查询选项。
要了解有关此版本的更多信息,请参阅 v2.26.0 版本说明。
2.25 中的新功能
The Ruby驱动程序2.25 release includes the following new功能、更改和错误修复:
向 正在使用的加密:添加以下功能:
增加对在聚合管道中使用
$lookup的支持,该管道引用了启用了正在使用的加密的集合。定义 Queryable Encryption 集合的加密字段映射时,可以使用
keyAltName字段而不是keyId来指定数据密钥。增加对 KMIP 主密钥上
delegated选项的支持。当设置为true时,KMIP 服务器会对数据密钥执行加密和解密,因此密钥加密密钥永远不会离开服务器。添加对使用
type:name格式的命名 KMS 提供商的支持。包装
mongocrypt_kms_ctx_fail返回false时引发的错误。
添加
Database#cursor_command方法,该方法可以从命令响应创建游标。在
Mongo::Client上设置时,取消对旧版重试调试选项:max_read_retries、:read_retry_interval和:max_write_retries的支持。这些选项仅应用于已取消支持的旧版重试功能。现代可重试读取和写入在默认情况下启用,并忽略这些选项。当向
tls或sslURI 选项传递无效布尔值时,会报错。包装
mongocrypt_kms_ctx_fail返回false时引发的错误。在 URI 渲染和
Mongo::Error::InvalidURI错误消息中删除凭证。保护 SRV 监控线程,并修复对
raise_on_invalid选项的处理。修复负载均衡拓扑结构中的连接泄漏。
修复
secondaryPreferred读取偏好(read preference)行为,以符合服务器选择规范。在
Binary.wrap_string中使MemoryPointer对象保持活跃,以防止过早的垃圾集合。停止发布来自监控往返时间检查的 SDAM 事件。
在因果一致会话中发送
afterClusterTime写入。因网络错误将服务器标记为
Unknown时,关闭监控连接。停止将读和写关注(write concern)添加到搜索索引辅助工具/辅助程序命令。
要了解有关此版本的更多信息,请参阅 v2.25.0 版本说明。
2.24.1 中的新功能
Ruby 驱动程序 2.24.1 版本包括以下新功能、更改和错误修复:
防止 OpenTelemetry 追踪捕获敏感命令。
添加
Mongo::Config.include_server_address_in_errors选项,该选项默认为false。启用后,Mongo::Error::OperationFailure和Mongo::Error::BulkWriteError消息包含产生错误的服务器的主机和端口。将
databaseName属性添加到命令事件,与命令监控规范保持一致。在快照会话中公开
atClusterTime。
要了解有关此版本的更多信息,请参阅 v2.24.1 版本说明。
2.24 中的新增功能
重要
此发布不再支持MongoDB Server 3.6 和 4.0 版本。如果您使用的是MongoDB Server 4.0 或更早版本,升级到版本 4.2 或更高版本。
The Ruby驱动程序2.24 release includes the following new功能、更改和错误修复:
引入
:server_monitoring_mode连接选项。要学习;了解更多信息,请参阅 连接选项指南中的服务器选择部分。添加对入口连接速率限制功能的支持。您可以使用
:enable_overload_retargeting和:max_adaptive_retries选项来改进连接到过载服务器时的行为。要学习;了解有关这些选项的更多信息,请参阅 连接选项指南中的读取和写入操作部分。添加对 MongoDB 智能工作负载管理 (IWM)的支持。Ruby 驱动程序现在可以优雅地处理写入阻塞场景,并在高负载条件下优化连接建立,以维护应用程序的可用性。要了解有关 IWM 的更多信息,请参阅 Atlas 文档中的写入阻塞。这些功能将在运行 MongoDB 9.0 及更高版本的 Atlas 集群上可用。
要学习;了解有关此发布的更多信息,请参阅Github上的 v2.24 发布说明。
2.23 中的新功能
重要
此发布中已弃用对MongoDB Server版本 3.6 和 4.0 的支持,并将在版本 2.24 中删除。如果您使用的是MongoDB Server 4.0 或更早版本,升级到版本 4.2 或更高版本。
The Ruby驱动程序2.23 release includes the following new功能、更改和错误修复:
新增对使用 OpenTelemetry 跟踪驱动程序操作的支持。启用后,此功能将跟踪Ruby驱动程序操作和相应的服务器命令。您可以通过将
tracing选项设置为true在Mongo::Client实例中启用跟踪,或通过OTEL_RUBY_INSTRUMENTATION_MONGODB_ENABLED环境变量进行全局设立。添加
csfle_convert_to_ruby_types配置选项,用于将客户端字段级加密(CSFLE) 类型转换为Ruby类型。将Ruby引擎(示例TruffleRuby 或 JRuby)添加到客户端元数据日志中的平台字段。
允许 SRV 连接字符串使用标签少于三个的有效主机名。
正确实现
srv_max_hostsURI 选项。新增对Ruby 4.0 的支持。
通过正确处理零(无限)和正超时值,修复
with_transaction中的客户端操作超时 (CSOT) 处理。
要学习;了解有关此发布的更多信息,请参阅Github上的 v2.23 发布说明。
2.22 中的新功能
Ruby驱动程序2.22发布包括以下新增功能、更改和改进:
为
update_one和replace_one方法添加排序选项。有关更多信息,请参阅 update_one 和 replace_one 的API文档。在连接池签出期间为
SocketError处理添加重试逻辑。修复了当服务器被标记为
unknown时出现的ArgumentError。
要学习;了解有关此发布的更多信息,请参阅Github上的 v2.22 发布说明。
2.21.1 中的新功能
Ruby驱动程序2.21.1发布包括以下新增功能、更改和改进:
将
type参数添加到Mongo::SearchIndex::View#create_one和Mongo::SearchIndex::View#create_many搜索索引创建方法中。这使您能够以编程方式创建MongoDB Vector Search 搜索索引。要了解更多信息和查看示例,请参阅MongoDB搜索和MongoDB Vector Search搜索索引指南。新增与Ruby 3.3 的兼容性。要学习;了解更多信息,请参阅兼容性。
BSON v5.1
bson gem 是BSON规范在Ruby中的实现。bson v5.1附带Ruby驱动程序v2.21.1发布。
bson 5.1发布包括以下新增功能、更改和改进:
添加
BSON::Vector类型以表示数值向量。要学习;了解更多信息,请参阅BSON指南的BSON ::Vector 部分。BSON::Document对象不支持使用#deep_symbolize_keys!和#symbolize_keys!方法。在以前的版本中,#symbolize_keys!方法在BSON::Document上使用时会引发ArgumentError,但#deep_symbolize_keys!不会,并且仅返回Hash而不是BSON::Document。此发布添加了当您在
BSON::Document实例上使用#deep_symbolize_keys!时的警告。在bsonv6.0 中,此动作会引发错误。
要了解有关此版本的更多信息,请参阅 v2.21.1 版本说明。
2.21 中的新功能
Ruby驱动程序2.21发布包括以下新功能:
支持客户端操作超时 (CSOT)功能,该功能将大多数与超时相关的选项统一在单个
timeout_ms选项下。支持MongoDB Server版本 8.0。
支持使用Queryable Encryption进行范围v2 查询,包括新的
trim_factor参数。有关Queryable Encryption的更多信息,请参阅MongoDB Server手册中的Queryable Encryption 。
要学习;了解有关此发布的更多信息,请参阅Github上的 v2.21 发布说明。
2.20 中的新功能
Ruby驱动程序2.20发布包括以下新功能:
不再支持 Ruby 2.5 和 2.6。弃用对 Ruby 2.7 和 JRuby 9.2 的支持,这将在下一个次要驱动程序版本中停止支持。新增对 JRuby 9.4 的支持。
支持新发布的 Ruby BSON版本 5.0。
允许在主机和选项之间使用不带斜线的连接字符串。示例,
mongodb://example.com?w=1和mongodb://example.com/?w=1现在都是有效的连接字符串。将客户端环境的容器运行时和编排元元数据发送到服务器以进行分析。
在检测到托管为 CosmosDB (Azure) 或 DocumentDB (Amazon)实例时,向日志写入警告消息。
如果可能,尝试在分片的拓扑结构中的不同
mongos实例上重试读取或写入操作。
要学习;了解有关此发布的更多信息,请参阅Github上的 v2.20 发布说明。