稳定的 API
本页
注意
稳定的 API 功能需要 MongoDB 服务器 5.0 或更高版本。
概述
在本指南中,您可以了解如何在连接到MongoDB部署时指定稳定API兼容性。
稳定API功能强制服务器使用与您指定的API版本兼容的行为执行操作。使用稳定API确保服务器响应的一致性,并为您的应用程序提供长期API稳定性。
以下部分描述了如何为您的MongoDB客户端启用和自定义稳定API。有关稳定API的更多信息,包括它支持的命令列表,请参阅稳定API MongoDB服务器手册。
启用稳定API
要启用稳定API,请执行以下步骤
构建一个
ServerApi
对象,并指定一个稳定API版本。您必须使用在ServerApiVersion
枚举中定义的稳定API版本。使用
MongoClientSettings.Builder
类构建一个MongoClientSettings
对象。使用
MongoClients.create()
方法实例化一个MongoClient
,并将您的MongoClientSettings
实例作为参数传递。
以下代码示例显示了如何指定版本1的稳定API
ServerApi serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .build(); // Replace the placeholder with your Atlas connection string String uri = "<connection string URI>"; MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(new ConnectionString(uri)) .serverApi(serverApi) .build(); try (MongoClient mongoClient = MongoClients.create(settings)) { // Perform client operations here }
一旦创建了一个带有稳定API的MongoClient
实例,您使用该客户端运行的所有命令都将使用指定的稳定API配置。如果您必须使用替代配置运行命令,请创建一个新的MongoClient
。
配置稳定的API
下表描述了ServerApi.Builder
类的可链式方法,您可以使用这些方法来自定义稳定API的行为。
选项名称 | 说明 |
---|---|
strict() | 可选。当设置为 true 时,如果您调用不属于声明API版本中的命令,驱动程序将引发异常。默认:false |
deprecationErrors() | 可选。当设置为 true 时,如果您调用声明API版本中已弃用的命令,驱动程序将引发异常。默认:false |
以下代码示例展示了如何通过链式调用ServerApi.Builder
的方法来配置ServerApi
实例。
ServerApi serverApi = ServerApi.builder() .version(ServerApiVersion.V1) .strict(true) .deprecationErrors(true) .build();
故障排除
服务器上未识别的字段 'apiVersion'
如果指定了API版本并连接到不支持稳定API的MongoDB服务器,Java Reactive Streams驱动程序将引发此异常。请确保您连接的是运行MongoDB Server v5.0或更高版本的部署。
提供了apiStrict:true,但命令 <operation> 不在指定的 API 版本中
Java Reactive Streams 驱动程序在您的 MongoClient
执行不在您指定的稳定 API 版本中的操作时引发此异常。为了避免此错误,请使用由指定的稳定 API 版本支持的替代操作,或在构建您的 ServerApi
对象时将 strict
选项设置为 False
。
API 文档
有关使用 Java Reactive Streams 驱动程序与稳定 API 的更多信息,请参阅以下 API 文档