新增功能
了解
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。您可以通过使用
serverMonitoringModeURI选项来启用监控。
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 值。