文档菜单
文档首页
/ / /
Go 驱动

新增功能

本页内容

  • 1.17 新增功能
  • 1.16 新增功能
  • 1.15.1 新增功能
  • 1.15 新增功能
  • 1.14 新增功能
  • 1.13 新增功能
  • 1.12.1 新增功能
  • 1.12 新增功能

提示

发行说明

要了解版本间的更改和更新,您可以阅读发行说明 与驱动源代码一起发布。

了解

重要

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版本的Go驱动程序发布包括以下改进和修复

  • 在创建Atlas Search索引时,增加支持指定索引类型。

  • 启用zstd压缩算法时,减少内存使用。

  • 升级了一些依赖项要求。有关升级列表,请参阅v1.16版本说明的“升级依赖项”部分。

有关这些更改的更多信息,请参阅Github上的v1.16版本说明

1.15.1版本的Go驱动器补丁发布包括以下改进和修复

  • 修复了断开与副本集集群连接后可能留下的rttMonitor连接泄漏的问题。

  • 当设置了客户端超时和操作超时时,添加了对手动指定读取和聚合操作maxTimeMS值的支持。

  • 添加了一个可以在更改流上调用的新方法RemainingBatchLength()

有关这些更改的更多信息,请参阅 Github 上的 1.15.1 版本说明

1.15 Go 驱动版本包括以下改进和修复

  • 可以通过指定 timeoutMS 连接选项或调用 SetTimeout() 函数来设置客户端超时,从而减轻连接切换。当设置超时后,驱动程序将在操作超时后尝试重用连接,并在关闭它之前等待最多一秒钟以检查是否可以重用连接。

  • 连接池事件包括一个 Duration 字段,用于测量检查出时间以及建立连接所需的总时间。

1.14版本的Go驱动程序包括以下改进和修复

  • 1.18版本之前的Go版本不再受支持。

  • 在心跳超时的情况下,正在进行的操作会被提前取消。

  • 包含“mongodb+srv://”前缀的连接字符串可以在SRV主机名中使用大写字母。

1.13版本的Go驱动程序包括以下改进和修复

  • 服务器选择和SDAM的日志记录。要了解更多关于日志记录的信息,请参阅日志记录文档。

  • Collection类型上的方法,允许您以编程方式管理搜索索引。

  • event.CommandStartedEventevent.CommandFinishedEvent事件返回DatabaseName字段。此字段还包括在命令日志类似物中。

  • 在分片拓扑中,当选择服务器重试失败的查询时,驱动程序会排除最初尝试使用的服务器。相反,如果有多个合格的mongos实例,驱动程序会随机选择一个。不健康的实例将自动排除在选择之外。

  • 在AWS Lambda和类似的服务(如FaaS)平台上,默认禁用流式SDAM。您可以通过使用serverMonitoringMode URI选项来启用监控。

1.12版本的Go驱动程序发布包括以下改进和修复

  • 驱动程序在结束会话时取消连接的锁定。这防止了当用户在连接到负载均衡器时运行事务时发生连接泄漏。

  • 当您使用无效的类型反序列化一个空的 bson.RawValue 类型或序列化一个 nil 指针的 ReadConcern 实例时,驱动程序不会抛出运行时错误。

  • options.LogComponentAll 设置为日志组件,可以正确地发布针对所有组件的日志。

重要

弃用通知

  • 已弃用 mongo.NewClient()client.Connect() 方法。您可以使用 mongo.Connect() 方法在一个调用中创建客户端并连接。

1.12 Go驱动程序发布的新特性包括

本驱动程序版本增加了对可查询加密(QE)的支持。有关使用QE功能的要求,请参阅可查询加密驱动程序兼容性表

ClientEncryption.CreateEncryptedCollection()方法在创建新的加密集合时自动创建数据加密密钥。有关使用QE功能的说明,请参阅服务器手册中的快速入门

您现在可以使用LogSink日志接口记录连接管理和命令执行事件。

有关更多信息,请参阅日志基础知识指南。

本驱动程序版本增加了对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 值。

返回

快速参考