了解以下版本中的新功能:
2.9.1 中的新功能
Go驾驶员v2.9.1发布包含以下更改:
重要
Go驾驶员v2.9.1 包含针对 CVE-2026 -88031 的修复。
For the latest information about MongoDB security updates, see MongoDB Security Bulletins.
有关此版本中更改的完整列表,请参阅 GitHub 上的 v..2 发布说明。91
2.9 中的新功能
此发布包括以下改进和修复:
Adds the experimental
ext/awsauthmodule, which supports all AWS authentication methods through the official AWS SDK for Go. You can use the module'sawsauth.CredentialsProvidertype withClientOptions,ClientEncryptionOptions, andAutoEncryptionOptions.Improves support for MongoDB 9.0 Intelligent Workload Management (IWM) by only retrying overload errors when doing so is not expected to worsen server conditions. To learn more about IWM, see Write-Blocking in the Atlas documentation.
Fixes a panic in
Collection.InsertManywhen you use unordered inserts (SetOrdered(false)) and more than one document fails. If the server returns write errors in a different order than the documents, the driver now returns the errors instead of panicking.
重要
The Go driver v2.9.0 release upgrades the golang.org/x/text module to v0.39.0 to resolve CVE-2026-56852. This upgrade raises the minimum required Go version to 1.25.
For the latest information about MongoDB security updates, see MongoDB Security Bulletins.
有关此版本中更改的更多信息,请参阅 GitHub 上的 v.2 发布说明。9
2.8.2 中的新功能
The Go driver v2.8.2 release includes the following change:
重要
Go driver v2.8.2 includes a fix for CVE-2026-81521.
For the latest information about MongoDB security updates, see MongoDB Security Bulletins.
For a complete list of changes in this version, see the v2.8.2 release notes on GitHub.
2.8.1 中的新功能
此发布包括以下修复:
- Fixes an issue where a failed write operation could appear to succeed. In earlier versions, when a write's first try failed with a
NoWritesPerformederror label, the driver could return anil/ErrNoDocumentsresult instead of the actual error. The driver now returns the real server error in this case.
有关此版本中更改的更多信息,请参阅 GitHub 上的 v..2 发布说明。81
2.8 中的新增功能
此发布包括以下改进和修复:
将 Queryable Encryption (QE)
prefix、suffix和substring查询提升为全面可用 (GA)。这些查询类型需要 MongoDB Server v9.0 或更高版本。将 QE 字符串查询API从
Text重命名为String。要执行 QE string 查询,请进行以下更改:使用
options.String()方法而不是options.Text()方法。使用
StringOptions*类型而不是TextOptions*。使用
EncryptOptionsBuilder.SetStringOptions()方法而不是SetTextOptions()方法。
将
libmongocrypt版本升级到 1.20.0。
For more information about the changes in this version, see the v2.8 release notes on GitHub.
2.7 中的新增功能
此发布包括以下改进和修复:
增加对在因果一致会话中发送
afterClusterTime到写入的支持,改善会话基于工作流程中读取和写入行为之间的一致性。取消对
x/mongo/driver/session包的支持,以阐明哪些界面旨在长期公开使用。将
AggregateOptions.Custom弃用作为内部专用选项。修复
Collection.Clone()以将BSONOptions传播到克隆集合。修复
mongo.ErrorCodes()以从ClientBulkWriteException正确解析服务器错误代码。修复了在
bson.Raw.Validate()中发生的恐慌,当对零长度 BSON 文档调用时。修复在变更流上调用
SetBatchSize时出现的 nil 游标错误。
要学习;了解有关此发布的更多信息,请参阅 GitHub 上的 v..2 发布说明。70
2.6 中的新增功能
此发布包括以下改进和修复:
弃用MongoDB Server 4.2支持。未来版本所需的最低服务器版本将为MongoDB Server 4.4 或更高版本。
引入两种
ClientOptions方法:SetAutoEncryptionOptions(): 指定因服务器端超负载错误而失败的操作的驱动程序应重试的最大次数。SetAutoEncryptionOptionsFromClient():指定驱动程序是否应当启用负载重新定向,对于因服务器端负载错误而失败的操作。
您还可以使用
maxAdaptiveRetries和enableOverloadRetargetingURI 选项来设立这些选项。要学习;了解有关这些选项及其设立方法的更多信息,请参阅自定义集群设置。
有关此版本中更改的信息,请参阅 GitHub 上的 v.2 发布说明。6
2.5.1 中的新功能
此发布包括以下修复:
- 修复了两个BSON解组边缘情况。
For more information about the changes in this version, see the v2.5.1 release notes on GitHub.
2.5 中的新功能
此发布包括以下改进和修复:
为Queryable Encryption前缀、后缀和子字符串索引添加了CRUD支持预览。这些功能不稳定,在普遍可用 (GA) 发布之前无法保证其安全性。这些功能的 GA 版本可能无法与预览版本向后兼容。
将
AsFloat64()和AsFloat64OK()方法添加到bson.RawValue中。将
DefaultDocumentMap()方法添加到bson.Decoder。添加
ErrorCodes()方法以解析任意Go错误中的服务器错误代码。在快照会话中公开
atClusterTime。修复了多个错误,包括 GSSAPI 错误处理中潜在的堆越界读取。
For more information about the changes in this version, see the v2.5 release notes on GitHub.
2.4.4 中的新功能
此发布包括以下修复:
修复了往返时间 (RTT)监控中的资源泄漏问题。
为ACID 事务操作添加命令日志记录。
For more information about the changes in this version, see the v2.4.4 release notes on GitHub.
2.4.1 中的新功能
此发布包括以下修复:
- 在
SearchIndexModel中添加对空options参数的处理
2.4 中的新功能
此发布包括以下改进和修复:
添加新的
Client.AppendDriverInfo()方法,该方法将信息添加到后续连接握手时发送的驱动程序元数据中。驱动程序不再随心跳命令一起发送
$clusterTime,心跳命令也不再解析响应中的$clusterTime。将内部文件
internal/decinal123/decinal123.go重命名为internal/decimal123/decimal123.go,以修复包名称中的拼写错误。
For more information about the changes in this version, see the v2.4 release notes on GitHub.
2.3 中的新功能
重要
Go 驱动程序 v2.3 发布是支持 MongoDB 4.0 的最后一个发布。Go驱动程序v2.4发布将需要MongoDB 4.2 或更高版本。Go驱动程序v2.3发布的最低Go版本是Go 1。19。
此发布包括以下改进和修复:
修复了以下问题:调用
maxAwaitTimeMS值大于或等于操作超时的cursor.Next()会导致套接字超时。驱动程序现在会短路这些调用以防止超时错误。修复
Element.StringN()未按预期截断字符串的问题。提高了
bson.Unmarshal()性能。
For more information about the changes in this version, see the v2.3 release notes on GitHub.
2.2 中的新功能
此发布包括以下改进和修复:
添加对Kubernetes OIDC身份验证的支持。要学习;了解有关如何为Kubernetes集群配置MongoDB身份验证的更多信息,请参阅企业身份验证机制指南中的Kubernetes OIDC 部分。
新增对配置数据加密密钥(DEK)缓存生命周期的支持。要学习;了解有关 DEK管理的更多信息,请参阅MongoDB Server手册中的加密密钥管理指南。
For more information about the changes in this version, see the v2.2 release notes on GitHub.
2.1 中的新功能
2.1 Go 驱动程序版本包括以下改进和修复:
引入Client.BulkWrite方法,使客户端能够在单个请求中跨多个数据库和集合执行多个插入、更新和删除操作。要学习;了解更多信息,请参阅批量操作指南。
Introduces the bson.Vector type to make inserting and querying vector data by using MongoDB Vector Search easier and more efficient. To view an example that uses the
bson.Vectortype, see the MongoDB Vector Search guide.Extends the ServerError interface to include
ErrorCodes, which returns a list of deduplicated error codes returned by the server during the lifetime of operation execution.将
sort选项添加到 UpdateOneOptions 和 ReplaceOptions,以进行独立运行更新和替换操作以及批量操作。
For more information about the changes in this version, see the v2.1 release notes on GitHub.
2.0 中的新功能
2.0 Go驱动程序发布支持 OpenID Connect (OIDC)身份验证,提供更流畅的客户端操作超时 (CSOT) 体验,并通过简化 API、改进错误说明和简化驱动程序包结构来实现更清晰、更一致的Go代码。
您可以在本节中学习;了解有关这些更改的更多信息,或查看 GitHub 上Go驾驶员源代码中的 v.2 0迁移指南。
此发布包括以下改进和修复:
OpenID Connect (OIDC)身份验证的文档支持。要学习;了解更多信息,请参阅 OIDC 身份验证机制 指南。
您可以从
mongo包访问权限GridFS API 。在以前的版本中,您可以从单独的gridfs包访问GridFS功能,但此功能现在已与主驱动程序mongo包合并。要学习;了解更多信息,请参阅GridFS指南。任何选项结构体中的
Comment字段都会采用any类型的值,而不是类型为string的值。 要设立此字段,可以使用SetComment()方法并传递any类型的参数。监控事件文档更新:
CommandStartedEvent和CommandFinishedEvent结构有一个int64类型的ServerConnectionID字段,用于捕获连接ID。PoolEvent结构的ConnectionID字段采用int64类型的值,而不是uint64类型的值。
要查看示例事件文档,请参阅监控应用程序事件指南。
更新了
options包中类型的构建器模式。该模式维护了一些 setter 函数,因此您无法将数据直接设立为 选项对象。此更新通常不会改变创建和使用选项的方式。要学习;了解更多信息,请参阅Jira票证功能。如果写入操作未得到确认,则驱动程序将不再支持
mongo.ErrUnacknowledgedWrite标记错误。要确认服务器已确认写入操作,您必须访问权限写入方法返回的结果结构体中的Acknowledged属性。以下示例展示了如何确认已确认插入操作:
res, err := coll.InsertOne(context.TODO(), bson.D{{"x", 2}}) if err != nil { panic(err) } fmt.Print(res.Acknowledged) Collection.Clone()方法不会返回错误。将
UnmarshalExtJSON()方法的canonical参数重命名为canonicalOnly。如果将canonicalOnly设立为true,则当扩展JSON未在规范模式下封送时,该方法会返回错误。如果设立为false,则该方法可以解组规范或宽松扩展JSON。要学习;了解更多信息,请参阅 UnmarshalExtJSON() API文档。
1.17.10 中的新功能
1.17.10Go驱动程序补丁发布包括以下错误修复:
- 修复了一个常见漏洞披露 (CVE) 问题,即调用者提供的结构化文件标识符在GridFS方法中被解释为查询条件,而不是字面标识符。要学习;了解详情,请参阅相关的 CVE-2026-88031 问题。
1.17.9 中的新功能
1.17.9Go驱动程序补丁发布包括以下错误修复:
- 修复了以下常见漏洞披露 (CVE) 问题:长度分隔的 GSSAPI 缓冲区被视为以 null 结尾的C字符串。要学习;了解详情,请参阅相关的 CVE-2026 -2303 问题。
1.17.8 中的新功能
重要
Go驱动程序v1 弃用通知
1.17.8Go驱动程序发布正式弃用 v1 Go驱动程序。
1.17.8Go驱动程序补丁包括以下更改:
- 弃用Go驾驶员v1 ,并向
go.mongodb.org/mongo-drivergo.mongodb.org/mongo-driver/v2添加弃用通知。用户应迁移到 。要学习;了解如何将应用程序从 v1 升级到 v2 ,请参阅Go驱动程序.2 0迁移指南。
For more information about the changes in this version, see the v1.17.8 release notes on GitHub.
1.17 中的新功能
重要
v1.17 是最终计划的 1.x发布。此版本将进行安全和错误修复,但未来的开发和功能将仅包含在驱动程序的 2.x 版本中。
1.17 Go 驱动程序版本包括以下改进和修复:
新增对 OpenID Connect (OIDC)身份验证的支持。要学习;了解更多信息,请参阅 OIDC 身份验证机制 指南。
添加支持可查询Queryable Encryption(QE)范围查询的支持。 要使用此功能,您的应用必须连接到MongoDB Server 8.0或更高版本。 有关 QE范围查询的更多信息,请参阅MongoDB Server手册中的可查询Queryable Encryption。
添加支持MongoDB Server 8.0的支持,但不包括客户端批量写入功能。
扩展
IndexView类型以包含DropOneWithKey()和DropWithKey()方法,这样您就可以使用键规范而不是名称来删除索引。
For more information about the changes in this version, see the v1.17 release notes on GitHub.
1.16 中的新功能
1.16 Go 驱动程序版本包括以下改进和修复:
新增对在创建MongoDB搜索索引时指定索引类型的支持。
启用
zstd压缩算法时减少内存使用量。升级某些依赖项要求。有关升级列表,请参阅“升级依赖项”部分v. 116发布说明部分。
有关这些更改的更多信息,请参阅Github上的 v.1 16发布说明。
1.15.1 中的新功能
1.15.1Go驱动程序补丁发布包括以下改进和修复:
修复了可能的连接泄漏问题,即与副本集集群断开连接后留下
rttMonitor个连接。添加了对在设立客户端范围的超时和操作超时时手动指定读取和聚合操作的
maxTimeMS值的支持。添加可对变更流调用的
RemainingBatchLength()方法。
有关这些更改的更多信息,请参阅Github上的 115v..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类型或编组ReadConcern实例的nil指针时,驱动程序不会抛出运行时错误。将
options.LogComponentAll正确设置为日志组件会导致针对所有组件发布日志。
1.12 中的新功能
重要
弃用通知
mongo.NewClient()和client.Connect()方法已弃用。您可以使用mongo.Connect()方法在一次调用中创建客户端并进行连接。
1.12 的新增功能Go 驱动程序发布版本包括:
可查询加密
此驱动程序版本增加了对可查询加密(QE)的支持。要详细了解使用 QE 功能的要求,请参阅可查询加密驱动程序兼容性表。
创建新的加密集合时,ClientEncryption.CreateEncryptedCollection() 方法会自动创建数据加密密钥。要学习;了解如何使用 QE功能,请参阅服务器手册中的Queryable Encryption快速入门。
日志接口
您现在可以通过 LogSink 日志记录接口来记录连接管理和命令执行事件。
要学习;了解更多信息,请参阅 日志记录指南。
其他 BSON 编组选项
此驱动程序版本向 options 包添加了功能,以指定驱动程序如何编组和解组 BSON。
以下示例展示如何在 Client 上设置 BSON 选项。这些选项指定以下行为:
如果缺少
bsonstruct 标记,则驱动程序将回退到使用jsonstruct 标记。驱动程序将
nilGo 映射类型编组为空 BSON 文档。驱动程序将
nilGo 切片类型编组为空 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 值予以解组。