新增功能
了解
1.17 的新功能
重要
1.17 是计划中的最后一个 1.x 版本发布。此版本将接收安全性和错误修复,但未来的开发和功能将仅包括驱动程序的 2.x 版本。
1.17 Go 驱动程序发布包括以下改进和修复
增加了对 OpenID Connect (OIDC) 认证的兼容性。有关更多信息,请参阅MONGODB-OIDC 企业认证机制指南部分。
增加了对可查询加密 (QE) 范围查询的兼容性。要使用此功能,您的应用程序必须连接到 MongoDB 服务器 8.0 或更高版本。有关 QE 范围查询的更多信息,请参阅 MongoDB 服务器手册中的 可查询加密。
增加了对 MongoDB 服务器 8.0 的兼容性,但不包括客户端批量写入功能。
扩展了
IndexView
类型,包括DropOneWithKey()
和DropWithKey()
方法,以便您可以使用它们的键规范而不是名称来删除索引。
有关本版本更改的更多信息,请参阅GitHub上的v1.17版本说明。
1.16版本新功能
1.16版本的Go驱动程序发布包括以下改进和修复
在创建Atlas Search索引时,增加支持指定索引类型。
启用
zstd
压缩算法时,减少内存使用。升级了一些依赖项要求。有关升级列表,请参阅v1.16版本说明的“升级依赖项”部分。
有关这些更改的更多信息,请参阅Github上的v1.16版本说明。
1.15.1版本新增功能
1.15.1版本的Go驱动器补丁发布包括以下改进和修复
修复了断开与副本集集群连接后可能留下的
rttMonitor
连接泄漏的问题。当设置了客户端超时和操作超时时,添加了对手动指定读取和聚合操作
maxTimeMS
值的支持。添加了一个可以在更改流上调用的新方法
RemainingBatchLength()
。
有关这些更改的更多信息,请参阅 Github 上的 1.15.1 版本说明。
1.15 新特性
1.15 Go 驱动版本包括以下改进和修复
可以通过指定
timeoutMS
连接选项或调用 SetTimeout() 函数来设置客户端超时,从而减轻连接切换。当设置超时后,驱动程序将在操作超时后尝试重用连接,并在关闭它之前等待最多一秒钟以检查是否可以重用连接。连接池事件包括一个
Duration
字段,用于测量检查出时间以及建立连接所需的总时间。
1.14版本更新内容
1.14版本的Go驱动程序包括以下改进和修复
1.18版本之前的Go版本不再受支持。
在心跳超时的情况下,正在进行的操作会被提前取消。
包含“mongodb+srv://”前缀的连接字符串可以在SRV主机名中使用大写字母。
1.13版本更新内容
1.13版本的Go驱动程序包括以下改进和修复
服务器选择和SDAM的日志记录。要了解更多关于日志记录的信息,请参阅日志记录文档。
在
Collection
类型上的方法,允许您以编程方式管理搜索索引。event.CommandStartedEvent
和event.CommandFinishedEvent
事件返回DatabaseName
字段。此字段还包括在命令日志类似物中。在分片拓扑中,当选择服务器重试失败的查询时,驱动程序会排除最初尝试使用的服务器。相反,如果有多个合格的
mongos
实例,驱动程序会随机选择一个。不健康的实例将自动排除在选择之外。在AWS Lambda和类似的服务(如FaaS)平台上,默认禁用流式SDAM。您可以通过使用
serverMonitoringMode
URI选项来启用监控。
1.12.1版本更新内容
1.12版本的Go驱动程序发布包括以下改进和修复
驱动程序在结束会话时取消连接的锁定。这防止了当用户在连接到负载均衡器时运行事务时发生连接泄漏。
当您使用无效的类型反序列化一个空的
bson.RawValue
类型或序列化一个nil
指针的ReadConcern
实例时,驱动程序不会抛出运行时错误。将
options.LogComponentAll
设置为日志组件,可以正确地发布针对所有组件的日志。
1.12版本更新内容
重要
弃用通知
已弃用
mongo.NewClient()
和client.Connect()
方法。您可以使用mongo.Connect()
方法在一个调用中创建客户端并连接。
1.12 Go驱动程序发布的新特性包括
可查询加密
本驱动程序版本增加了对可查询加密(QE)的支持。有关使用QE功能的要求,请参阅可查询加密驱动程序兼容性表。
ClientEncryption.CreateEncryptedCollection()
方法在创建新的加密集合时自动创建数据加密密钥。有关使用QE功能的说明,请参阅服务器手册中的快速入门。
日志接口
您现在可以使用LogSink
日志接口记录连接管理和命令执行事件。
有关更多信息,请参阅日志基础知识指南。
额外的BSON序列化选项
本驱动程序版本增加了对options
包的功能,以便指定驱动程序如何序列化和反序列化BSON。
以下示例展示了如何在您的Client
上设置BSON选项。这些选项指定以下行为
如果不存在
bson
结构体标签,驱动程序将回退到json
结构体标签。驱动程序将Go的空map类型序列化为空BSON文档。
驱动程序将Go的空slice类型序列化为空BSON数组。
bsonOpts := &options.BSONOptions{ UseJSONStructTags: true, NilMapAsEmpty: true, NilSliceAsEmpty: true, } options.Client().SetBSONOptions(bsonOpts)
关于如何指定和实现 BSONOptions
类型的完整示例,请参阅API 文档。
简化写入关注点规范
本驱动程序版本简化了 WriteConcern
API。有关更改的详细信息,请参阅写入关注点。
其他更改
支持在 EKS 中使用 AWS IAM 角色进行身份验证。
添加了
Cursor.SetBatchSize()
方法,允许指定迭代游标时获取的批处理大小。添加了
UnmarshalValue()
方法,允许反序列化使用MarshalValue()
方法序列化的 BSON 值。