Stable API
注意
Stable API 功能需要 MongoDB Server 5.0 或更高版本。
仅当您要连接的所有 MongoDB 服务器都支持 Stable API 功能时,方可使用此功能。
Overview
在本指南中,您可以了解如何在连接 MongoDB 实例或副本集时指定“Stable API”兼容性。
稳定 API 功能会强制服务器以与您指定的 API 版本兼容的行为运行操作。API 版本定义了其涵盖的操作的预期行为以及服务器响应的格式。根据您指定的 API 版本,操作和服务器响应可能会有所不同。
当您将 Stable API 功能与官方 MongoDB 驱动程序一起使用时,您可以更新驱动程序或服务器,而不必担心 Stable API 所涵盖的命令的向后兼容性问题。
要详细了解服务器涵盖的命令,请参阅 stable API 。
指定 API 版本
Client
可以选择通过ClientOptions
获取ServerAPIOptions
类型。
要指定 API 版本,请将 SetServerAPIOptions()
方法与服务器 API 选项一起附加到 ClientOptions
中。指定 API 版本后,Client
将在连接期间运行与 API 版本兼容的操作。
注意
MongoDB Go 驱动程序目前仅支持 ServerAPIVersion1
。
例子
以下示例将设置 Stable API 版本并连接到服务器的 Client
实例化。
// Specify a server URI to connect to uri := "mongodb://<hostname>:<port>" // Specify the Stable API version in the ClientOptions object serverAPI := options.ServerAPI(options.ServerAPIVersion1) // Pass in the URI and the ClientOptions to the Client client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri).SetServerAPIOptions(serverAPI)) if err != nil { panic(err) }
修改行为
您可以通过向 ServerAPIOptions
类型附加更多选项来进一步修改 Stable API 功能的行为。如果不指定任何选项,驱动程序将使用每个选项的默认值。
方法 | 说明 |
---|---|
ServerAPI() | The API version to use. Default: ServerAPIVersion1 |
SetStrict() | Flag that indicates whether the server should return errors for features that aren't part of the API version. Default: false |
SetDeprecationErrors() | Flag that indicates whether the server should return errors for deprecated features. Default: false |
例子
此示例指定服务器执行以下操作:
使用 Version 1 作为 API 版本
对于不属于 Version 1 版本的功能返回错误
对已弃用功能返回错误
// Specify a server URI to connect to uri := "mongodb://<hostname>:<port>" // Specify the Stable API version and append options in the ClientOptions object serverAPI := options.ServerAPI(options.ServerAPIVersion1).SetStrict(true).SetDeprecationErrors(true) // Pass in the URI and the ClientOptions to the Client client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri).SetServerAPIOptions(serverAPI)) if err != nil { panic(err) }
更多信息
要学习;了解有关连接到MongoDB实例或副本集的更多信息,请参阅连接指南。
API 文档
有关本节中的选项的更多信息,请参阅以下 API 文档: