你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

CosmosAsyncContainer 类

  • java.lang.Object
    • com.azure.cosmos.CosmosAsyncContainer

public class CosmosAsyncContainer

提供用于读取、删除和替换现有容器的方法。 提供用于与子资源交互的方法, (项、脚本、冲突)

方法摘要

修饰符和类型 方法和描述
Mono<CosmosItemResponse<T>> createItem(T item)

创建一个项。

Mono<CosmosItemResponse<T>> createItem(T item, CosmosItemRequestOptions options)

创建 Cosmos 项。

Mono<CosmosItemResponse<T>> createItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)

创建一个项。

Mono<CosmosItemResponse<Object>> deleteItem(T item, CosmosItemRequestOptions options)

删除该项。

Mono<CosmosItemResponse<T>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class<T> itemType)

运行部分更新,以修改项的特定属性或字段,而不替换整个项。

Mono<CosmosItemResponse<T>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class<T> itemType)

运行部分更新,以修改项的特定属性或字段,而不替换整个项。

CosmosPagedFlux<T> queryChangeFeed(CosmosChangeFeedRequestOptions options, Class<T> classType)

使用 查询当前容器的更改源中的 CosmosChangeFeedRequestOptions项。

CosmosPagedFlux<T> queryItems(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class<T> classType)

使用 SqlQuerySpecCosmosQueryRequestOptions查询当前容器中的项。

CosmosPagedFlux<T> queryItems(SqlQuerySpec querySpec, Class<T> classType)

使用 SqlQuerySpec查询当前容器中的项。

CosmosPagedFlux<T> queryItems(String query, CosmosQueryRequestOptions options, Class<T> classType)

使用字符串查询当前容器中的项。

CosmosPagedFlux<T> queryItems(String query, Class<T> classType)

查询当前容器中的项。

CosmosPagedFlux<T> readAllItems(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class<T> classType)

读取逻辑分区的所有项

CosmosPagedFlux<T> readAllItems(PartitionKey partitionKey, Class<T> classType)

读取逻辑分区的所有项

Mono<CosmosItemResponse<T>> readItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class<T> itemType)

使用配置的 CosmosItemRequestOptions按项ID 读取项。

Mono<CosmosItemResponse<T>> readItem(String itemId, PartitionKey partitionKey, Class<T> itemType)

按项 ID 读取项

Mono<FeedResponse<T>> readMany(List<CosmosItemIdentity> itemIdentityList, Class<T> classType)

读取许多文档。

Mono<FeedResponse<T>> readMany(List<CosmosItemIdentity> itemIdentityList, String sessionToken, Class<T> classType)

读取许多文档。

Mono<CosmosItemResponse<T>> replaceItem(T item, String itemId, PartitionKey partitionKey)

将容器中的现有项替换为新项。

Mono<CosmosItemResponse<T>> replaceItem(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)

将容器中的现有项替换为新项。

Mono<CosmosItemResponse<T>> upsertItem(T item)

更新插入项。

Mono<CosmosItemResponse<T>> upsertItem(T item, CosmosItemRequestOptions options)

更新插入项。

Mono<CosmosItemResponse<T>> upsertItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)

更新插入项。

Flux<CosmosBulkOperationResponse<TContext>> executeBulkOperations(Flux<CosmosItemOperation> operations)

批量执行操作的通量。

Flux<CosmosBulkOperationResponse<TContext>> executeBulkOperations(Flux<CosmosItemOperation> operations, CosmosBulkExecutionOptions bulkOptions)

批量执行操作的通量。

Mono<CosmosContainerResponse> delete()

删除当前容器。

Mono<CosmosContainerResponse> delete(CosmosContainerRequestOptions options)

删除容器

Mono<CosmosItemResponse<Object>> deleteAllItemsByPartitionKey(PartitionKey partitionKey, CosmosItemRequestOptions options)

删除容器中具有指定分区键值的所有项。

Mono<CosmosItemResponse<Object>> deleteItem(String itemId, PartitionKey partitionKey)

删除项目。

Mono<CosmosItemResponse<Object>> deleteItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)

删除该项。

void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig)

使用全局控制模式启用吞吐量控制组。

void enableLocalThroughputControlGroup(ThroughputControlGroupConfig groupConfig)

使用本地控制模式启用吞吐量控制组。

Mono<CosmosBatchResponse> executeCosmosBatch(CosmosBatch cosmosBatch)

执行事务批处理。

Mono<CosmosBatchResponse> executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)

执行事务批处理。

CosmosAsyncConflict getConflict(String id)

获取使用 CosmosAsyncConflict 当前容器作为上下文的对象。

CosmosAsyncDatabase getDatabase()

获取当前容器的父 CosmosAsyncDatabase 级。

Mono<List<FeedRange>> getFeedRanges()

获取可用于并行化源操作的列表 FeedRange

String getId()

获取 的 CosmosAsyncContainerID。

CosmosAsyncScripts getScripts()

获取使用 CosmosAsyncScripts 当前容器作为上下文的 。

Mono<Void> openConnectionsAndInitCaches()

已放弃

尽力通过预热当前读取区域的缓存和连接来初始化容器。

Mono<Void> openConnectionsAndInitCaches(int numProactiveConnectionRegions)

已放弃

尽力通过将缓存和连接预热到指定的否来初始化容器。

CosmosPagedFlux<CosmosConflictProperties> queryConflicts(String query)

查询当前容器中的所有冲突。

CosmosPagedFlux<CosmosConflictProperties> queryConflicts(String query, CosmosQueryRequestOptions options)

查询当前容器中的所有冲突。

Mono<CosmosContainerResponse> read()

读取当前容器。

Mono<CosmosContainerResponse> read(CosmosContainerRequestOptions options)

在指定其他选项(如 If-Match)时读取当前容器。

CosmosPagedFlux<CosmosConflictProperties> readAllConflicts(CosmosQueryRequestOptions options)

列出当前容器中的所有冲突。

Mono<ThroughputResponse> readThroughput()

读取为当前容器预配的吞吐量。

Mono<CosmosContainerResponse> replace(CosmosContainerProperties containerProperties)

替换当前容器的属性。

Mono<CosmosContainerResponse> replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)

使用非默认请求选项时替换当前容器属性。

Mono<ThroughputResponse> replaceThroughput(ThroughputProperties throughputProperties)

替换吞吐量。

方法继承自 java.lang.Object

方法详细信息

createItem

public Mono<>> createItem(T item)

创建一个项。

订阅后,将执行该操作。 成功完成后, Mono 将包含单个资源响应以及创建的 Cosmos 项。 如果失败,将 Mono 出错。

Parameters:

item - 表示为 POJO 或 Cosmos 项对象的 Cosmos 项。

Returns:

Mono 包含单个资源响应,其中包含创建的 Cosmos 项或错误。

createItem

public Mono<>> createItem(T item, CosmosItemRequestOptions options)

创建 Cosmos 项。

Parameters:

item - 项。
options - 项请求选项。

Returns:

Mono 包含单个资源响应,其中包含创建的 Cosmos 项或错误。

createItem

public Mono<>> createItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)

创建一个项。

订阅后,将执行该操作。 成功完成后, Mono 将包含单个资源响应以及创建的 Cosmos 项。 如果失败,将 Mono 出错。

Parameters:

item - 表示为 POJO 或 Cosmos 项对象的 Cosmos 项。
partitionKey - 分区键。
options - 请求选项。

Returns:

Mono 包含单个资源响应,其中包含创建的 Cosmos 项或错误。

deleteItem

public Mono<>> deleteItem(T item, CosmosItemRequestOptions options)

删除该项。

订阅后,将执行该操作。 成功完成后, Mono 将包含已删除项的单个 Cosmos 项响应。

Parameters:

item - 要删除的项。
options - 请求选项。

Returns:

包含 Mono Cosmos 项资源响应的 。

patchItem

public Mono<>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class itemType)

运行部分更新,以修改项的特定属性或字段,而不替换整个项。

CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();

 cosmosPatchOperations
     .add("/departure", "SEA")
     .increment("/trips", 1);

 cosmosAsyncContainer.patchItem(
         passenger.getId(),
         new PartitionKey(passenger.getId()),
         cosmosPatchOperations,
         Passenger.class)
     .subscribe(response -> {
         System.out.println(response);
     }, throwable -> {
         throwable.printStackTrace();
     });

订阅后,将执行该操作。 成功完成后, Mono 将包含单个 Cosmos 项响应以及已修补的项。

Parameters:

itemId - 项 ID。
partitionKey - 分区键。
cosmosPatchOperations - 表示具有要按顺序应用于引用 Cosmos 项的操作列表的容器。
options - 请求选项。
itemType - 项类型。

Returns:

Mono 包含包含已修补项或错误的 Cosmos 项资源响应。

patchItem

public Mono<>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class itemType)

运行部分更新,以修改项的特定属性或字段,而不替换整个项。

CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();

 cosmosPatchOperations
     .add("/departure", "SEA")
     .increment("/trips", 1);

 cosmosAsyncContainer.patchItem(
         passenger.getId(),
         new PartitionKey(passenger.getId()),
         cosmosPatchOperations,
         Passenger.class)
     .subscribe(response -> {
         System.out.println(response);
     }, throwable -> {
         throwable.printStackTrace();
     });

订阅后,将执行该操作。 成功完成后, Mono 将包含单个 Cosmos 项响应以及已修补的项。

Parameters:

itemId - 项 ID。
partitionKey - 分区键。
cosmosPatchOperations - 表示具有要按顺序应用于引用 Cosmos 项的操作列表的容器。
itemType - 项类型。

Returns:

Mono 包含包含已修补项或错误的 Cosmos 项资源响应。

queryChangeFeed

public CosmosPagedFlux queryChangeFeed(CosmosChangeFeedRequestOptions options, Class classType)

使用 查询当前容器的更改源中的 CosmosChangeFeedRequestOptions项。

CosmosChangeFeedRequestOptions options = CosmosChangeFeedRequestOptions
     .createForProcessingFromNow(FeedRange.forFullRange())
     .allVersionsAndDeletes();

 cosmosAsyncContainer.queryChangeFeed(options, Passenger.class)
     .byPage()
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Flux.empty();
     })
     .subscribe();

订阅后,将执行该操作。 将 Flux 包含获取的项的一个或多个源响应。 如果失败,将 CosmosPagedFlux<T> 出错。

Parameters:

options - 更改源请求选项。
classType - 类类型。

Returns:

包含 CosmosPagedFlux<T> 已获取项的一个或多个源响应页或错误。

queryItems

public CosmosPagedFlux queryItems(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class classType)

使用 SqlQuerySpecCosmosQueryRequestOptions查询当前容器中的项。

订阅后,将执行该操作。 将 Flux 包含获取的项的一个或多个源响应。 如果失败,将 CosmosPagedFlux<T> 出错。

Parameters:

querySpec - SQL 查询规范。
options - 查询请求选项。
classType - 类类型。

Returns:

包含 CosmosPagedFlux<T> 已获取项的一个或多个源响应页或错误。

queryItems

public CosmosPagedFlux queryItems(SqlQuerySpec querySpec, Class classType)

使用 SqlQuerySpec查询当前容器中的项。

CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();

 String query = "SELECT * FROM Passenger p WHERE (p.departure = @departure)";
 List<SqlParameter> parameters = Collections.singletonList(new SqlParameter("@departure", "SEA"));
 SqlQuerySpec sqlQuerySpec = new SqlQuerySpec(query, parameters);

 cosmosAsyncContainer.queryItems(sqlQuerySpec, options, Passenger.class)
     .byPage()
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Flux.empty();
     })
     .subscribe();

订阅后,将执行该操作。 将 CosmosPagedFlux<T> 包含获取的项的一个或多个源响应。 如果失败,将 CosmosPagedFlux<T> 出错。

Parameters:

querySpec - SQL 查询规范。
classType - 类类型。

Returns:

包含 CosmosPagedFlux<T> 已获取项的一个或多个源响应页或错误。

queryItems

public CosmosPagedFlux queryItems(String query, CosmosQueryRequestOptions options, Class classType)

使用字符串查询当前容器中的项。

CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
 String query = "SELECT * FROM Passenger WHERE Passenger.departure IN ('SEA', 'IND')";
 cosmosAsyncContainer.queryItems(query, options, Passenger.class)
     .byPage()
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Flux.empty();
     })
     .subscribe();

订阅后,将执行该操作。 将 CosmosPagedFlux<T> 包含获取的项的一个或多个源响应。 如果失败,将 CosmosPagedFlux<T> 出错。

Parameters:

query - 查询。
options - 查询请求选项。
classType - 类类型。

Returns:

包含 CosmosPagedFlux<T> 已获取项的一个或多个源响应页或错误。

queryItems

public CosmosPagedFlux queryItems(String query, Class classType)

查询当前容器中的项。

CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
 String query = "SELECT * FROM Passenger WHERE Passenger.departure IN ('SEA', 'IND')";
 cosmosAsyncContainer.queryItems(query, options, Passenger.class)
     .byPage()
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Flux.empty();
     })
     .subscribe();

订阅后,将执行该操作。 将 CosmosPagedFlux<T> 包含获取的项的一个或多个源响应。 如果失败,将 CosmosPagedFlux<T> 出错。

Parameters:

query - 查询。
classType - 类类型。

Returns:

包含 CosmosPagedFlux<T> 已获取项的一个或多个源响应页或错误。

readAllItems

public CosmosPagedFlux readAllItems(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class classType)

读取逻辑分区的所有项

cosmosAsyncContainer
     .readAllItems(new PartitionKey(partitionKey), Passenger.class)
     .byPage(100)
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Flux.empty();
     })
     .subscribe();

订阅后,将执行该操作。 将 CosmosPagedFlux<T> 包含读取 Cosmos 项的一个或多个源响应。 如果失败,将 CosmosPagedFlux<T> 出错。

Parameters:

partitionKey - 需要读取的文档的分区键值
options - 源选项 (可选) 。
classType - 类类型。

Returns:

CosmosPagedFlux<T> 包含读取 Cosmos 项或错误的一个或多个源响应页。

readAllItems

public CosmosPagedFlux readAllItems(PartitionKey partitionKey, Class classType)

读取逻辑分区的所有项

cosmosAsyncContainer
     .readAllItems(new PartitionKey(partitionKey), Passenger.class)
     .byPage(100)
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Flux.empty();
     })
     .subscribe();

订阅后,将执行该操作。 将 CosmosPagedFlux<T> 包含读取 Cosmos 项的一个或多个源响应。 如果失败,将 CosmosPagedFlux<T> 出错。

Parameters:

partitionKey - 需要读取的文档的分区键值
classType - 类类型。

Returns:

CosmosPagedFlux<T> 包含读取 Cosmos 项或错误的一个或多个源响应页。

readItem

public Mono<>> readItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class itemType)

使用配置的 CosmosItemRequestOptions按 itemId 读取项。 此操作用于根据容器的唯一标识符 (ID) 和分区键从容器中检索单个项。 readItem 操作使用特定项的唯一标识符提供对特定项的直接访问,该标识符由项的 ID 和分区键值组成。 此操作对于按已知项的 ID 和分区键检索已知项非常有效,无需进行复杂的查询。

订阅后,将执行该操作。 成功完成后, Mono 将包含包含读取项的 Cosmos 项响应。

Parameters:

itemId - 项 ID。
partitionKey - 分区键。
options - 请求 (可选) CosmosItemRequestOptions
itemType - 项类型。

Returns:

Mono 包含包含读取项或错误的 Cosmos 项响应。

readItem

public Mono<>> readItem(String itemId, PartitionKey partitionKey, Class itemType)

按 itemId 读取项。 此操作用于根据容器的唯一标识符 (ID) 和分区键从容器中检索单个项。 readItem 操作使用特定项的唯一标识符提供对特定项的直接访问,该标识符由项的 ID 和分区键值组成。 此操作对于按已知项的 ID 和分区键检索已知项非常有效,无需进行复杂的查询。

订阅后,将执行该操作。 成功完成时, Mono 将包含包含读取项的项响应。

// Read an item
 cosmosAsyncContainer.readItem(passenger.getId(), new PartitionKey(passenger.getId()), Passenger.class)
     .flatMap(response -> Mono.just(response.getItem()))
     .subscribe(passengerItem -> System.out.println(passengerItem), throwable -> {
         CosmosException cosmosException = (CosmosException) throwable;
         cosmosException.printStackTrace();
     });
 // ...

Parameters:

itemId - 项 ID。
partitionKey - 分区键。
itemType - 项类型。

Returns:

Mono 包含包含读取项或错误的 Cosmos 项响应。

readMany

public Mono<>> readMany(List itemIdentityList, Class classType)

读取许多文档。 可用于在单个请求中读取具有特定 ID 和分区键的许多文档。 如果列表中缺少任何文档,则不会引发异常。

List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
 itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
 itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));

 cosmosAsyncContainer.readMany(itemIdentityList, Passenger.class)
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Mono.empty();
     })
     .subscribe();

Parameters:

itemIdentityList - 需要读取的项的 CosmosItem ID 和分区键元组
classType - 类类型

Returns:

具有 cosmos 项的源响应的 Mono

readMany

public Mono<>> readMany(List itemIdentityList, String sessionToken, Class classType)

读取许多文档。 可用于在单个请求中读取具有特定 ID 和分区键的许多文档。 如果列表中缺少任何文档,则不会引发异常。

List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
 itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
 itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));

 cosmosAsyncContainer.readMany(itemIdentityList, Passenger.class)
     .flatMap(passengerFeedResponse -> {
         for (Passenger passenger : passengerFeedResponse.getResults()) {
             System.out.println(passenger);
         }
         return Mono.empty();
     })
     .subscribe();

Parameters:

itemIdentityList - 需要读取的项的 CosmosItem ID 和分区键元组
sessionToken - 可选的会话令牌 - 如果可以在没有特定会话令牌的情况下进行读取,则为 null
classType - 类类型

Returns:

具有 cosmos 项或错误的源响应的 Mono

replaceItem

public Mono<>> replaceItem(T item, String itemId, PartitionKey partitionKey)

将容器中的现有项替换为新项。 它执行项的完全替换,将其所有属性替换为新项的属性

cosmosAsyncContainer.replaceItem(
         newPassenger,
         oldPassenger.getId(),
         new PartitionKey(oldPassenger.getId()),
         new CosmosItemRequestOptions())
     .subscribe(response -> {
         System.out.println(response);
     }, throwable -> {
         throwable.printStackTrace();
     });

订阅后,将执行该操作。 成功完成后, Mono 将包含单个 Cosmos 项响应以及替换的项。

Parameters:

item - 要替换的项 (包含项 ID) 。
itemId - 项 ID。
partitionKey - 分区键。

Returns:

包含 Mono 包含替换项或错误的 Cosmos 项资源响应的 。

replaceItem

public Mono<>> replaceItem(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)

将容器中的现有项替换为新项。 它执行项的完全替换,将其所有属性替换为新项的属性

cosmosAsyncContainer.replaceItem(
         newPassenger,
         oldPassenger.getId(),
         new PartitionKey(oldPassenger.getId()),
         new CosmosItemRequestOptions())
     .subscribe(response -> {
         System.out.println(response);
     }, throwable -> {
         throwable.printStackTrace();
     });

订阅后,将执行该操作。 成功完成后, Mono 将包含单个 Cosmos 项响应以及替换的项。

Parameters:

item - 要替换的项 (包含项 ID) 。
itemId - 项 ID。
partitionKey - 分区键。
options - 请求 comosItemRequestOptions (可选) 。

Returns:

包含 Mono 包含替换项或错误的 Cosmos 项资源响应的 。

upsertItem

public Mono<>> upsertItem(T item)

更新插入项。

订阅后,将执行该操作。 成功完成后, Mono 将包含单个资源响应以及已插入的项。 如果失败,将 Mono 出错。

Parameters:

item - 表示为 POJO 或要更新插入的 Item 对象的项目。

Returns:

Mono 包含单个资源响应,其中包含已更新插入的项或错误。

upsertItem

public Mono<>> upsertItem(T item, CosmosItemRequestOptions options)

更新插入项。

订阅后,将执行该操作。 成功完成后, Mono 将包含单个资源响应以及已插入的项。 如果失败,将 Mono 出错。

Parameters:

item - 表示为 POJO 或要更新插入的 Item 对象的项目。
options - 请求选项。

Returns:

Mono 包含单个资源响应,其中包含已更新插入的项或错误。

upsertItem

public Mono<>> upsertItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)

更新插入项。

订阅后,将执行该操作。 成功完成后, Mono 将包含单个资源响应以及已插入的项。 如果失败,将 Mono 出错。

Parameters:

item - 表示为 POJO 或要更新插入的 Item 对象的项目。
partitionKey - 分区键。
options - 请求选项。

Returns:

Mono 包含单个资源响应,其中包含已更新插入的项或错误。

executeBulkOperations

public Flux<>> executeBulkOperations(Flux operations)

批量执行操作的通量。

Parameters:

operations - 将由此容器执行的操作的流量。

Returns:

CosmosBulkOperationResponse<TContext> Flux 包含操作,它是响应或异常。 若要创建可在此处执行的操作,请使用 CosmosBulkOperations。 例如, 用于更新插入操作 com.azure.cosmos.models.CosmosBulkOperations#getUpsertItemOperation(Object, PartitionKey) 可以使用 获取相应的操作 getOperation() ,并使用 获取响应 getResponse()。 如果成功执行操作,则 返回 isSuccessStatusCode() 的值将为 true。 若要获取实际状态,请使用 getStatusCode()。 若要检查操作是否有任何异常,请使用 getException() 获取异常。

executeBulkOperations

public Flux<>> executeBulkOperations(Flux operations, CosmosBulkExecutionOptions bulkOptions)

批量执行操作的通量。

Parameters:

operations - 将由此容器执行的操作的流量。
bulkOptions - 适用于此批量请求的选项,指定有关执行的选项,例如并发、批处理大小、间隔和上下文。

Returns:

CosmosBulkOperationResponse<TContext> Flux 包含操作,它是响应或异常。 若要创建可在此处执行的操作,请使用 CosmosBulkOperations。 例如, 用于更新插入操作 com.azure.cosmos.models.CosmosBulkOperations#getUpsertItemOperation(Object, PartitionKey) 可以使用 获取相应的操作 getOperation() ,并使用 获取响应 getResponse()。 如果成功执行操作,则 返回 isSuccessStatusCode() 的值将为 true。 若要获取实际状态,请使用 getStatusCode()。 若要检查操作是否有任何异常,请使用 getException() 获取异常。

delete

public Mono delete()

删除当前容器。

订阅后,将执行该操作。 成功完成后, Mono 将包含已删除容器的单个 Cosmos 容器响应。 如果失败,将 Mono 出错。

Returns:

Mono 包含已删除容器的单个 Cosmos 容器响应或错误。

delete

public Mono delete(CosmosContainerRequestOptions options)

删除容器

订阅后,将执行该操作。 成功完成后, Mono 将包含已删除数据库的单个 Cosmos 容器响应。 如果失败,将 Mono 出错。

Parameters:

options - 请求选项。

Returns:

Mono 包含已删除数据库的单个 Cosmos 容器响应或错误。

deleteAllItemsByPartitionKey

public Mono<>> deleteAllItemsByPartitionKey(PartitionKey partitionKey, CosmosItemRequestOptions options)

删除容器中具有指定 partitionKey 值的所有项。 启动异步 Cosmos DB 后台操作,此操作会删除容器中具有指定值的所有项。 异步 Cosmos DB 后台操作使用用户 RU 的百分比运行。

订阅后,将执行该操作。 成功完成后, Mono 将包含所有已删除项的单个 Cosmos 项响应。

Parameters:

partitionKey - 项目的 partitionKey。
options - 请求选项。

Returns:

包含 Mono Cosmos 项资源响应的 。

deleteItem

public Mono<>> deleteItem(String itemId, PartitionKey partitionKey)

删除项目。

订阅后,将执行该操作。 成功完成后, Mono 将包含已删除项的单个 Cosmos 项响应。

cosmosAsyncContainer.deleteItem(
     passenger.getId(),
     new PartitionKey(passenger.getId())
 ).subscribe(response -> {
     System.out.println(response);
 }, throwable -> {
     CosmosException cosmosException = (CosmosException) throwable;
     cosmosException.printStackTrace();
 });

Parameters:

itemId - 项 ID。
partitionKey - 分区键。

Returns:

包含 Mono Cosmos 项资源响应的 。

deleteItem

public Mono<>> deleteItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)

删除该项。

订阅后,将执行该操作。 成功完成后, Mono 将包含已删除项的单个 Cosmos 项响应。

Parameters:

itemId - 项的 id。
partitionKey - 项目的 partitionKey。
options - 请求选项 (可选) 。

Returns:

包含 Mono Cosmos 项资源响应的 。

enableGlobalThroughputControlGroup

public void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig)

使用全局控制模式启用吞吐量控制组。 定义的吞吐量限制将在不同的客户端之间共享。

ThroughputControlGroupConfig groupConfig =
     new ThroughputControlGroupConfigBuilder()
         .groupName("localControlGroup")
         .targetThroughputThreshold(0.1)
         .build();

 GlobalThroughputControlConfig globalControlConfig =
     this.client.createGlobalThroughputControlConfigBuilder(database.getId(), container.getId())
         .setControlItemRenewInterval(Duration.ofSeconds(5))
         .setControlItemExpireInterval(Duration.ofSeconds(10))
         .build();

 container.enableGlobalThroughputControlGroup(groupConfig, globalControlConfig);

Parameters:

groupConfig - 吞吐量控制组配置,请参阅 GlobalThroughputControlGroup
globalControlConfig - 全局吞吐量控制配置,请参阅 GlobalThroughputControlConfig

enableLocalThroughputControlGroup

public void enableLocalThroughputControlGroup(ThroughputControlGroupConfig groupConfig)

使用本地控制模式启用吞吐量控制组。

ThroughputControlGroupConfig groupConfig =
     new ThroughputControlGroupConfigBuilder()
         .groupName("localControlGroup")
         .targetThroughputThreshold(0.1)
         .build();

 container.enableLocalThroughputControlGroup(groupConfig);

Parameters:

groupConfig - 一个 ThroughputControlGroupConfig

executeCosmosBatch

public Mono executeCosmosBatch(CosmosBatch cosmosBatch)

执行事务批处理。

Parameters:

cosmosBatch - 批处理包含将由此容器执行的操作和分区键列表。

Returns:

一个 Mono 响应,其中包含事务批处理的执行详细信息。

如果事务批处理成功执行,则返回的响应时返回 CosmosBatchResponse#getStatusCode 的值将设置为 200}。

如果事务批处理中的操作在执行过程中失败,则不会提交批处理的更改,并且失败操作的状态由 CosmosBatchResponse#getStatusCode 或 异常提供。 若要获取有关在出现某些用户错误(如冲突、找不到等)时失败的操作的信息,可以枚举响应。 这将返回 CosmosBatchOperationResult 与事务批处理中每个操作对应的实例,这些实例将按照它们添加到事务批处理的顺序返回。 对于与事务批处理中的操作对应的结果,请使用 CosmosBatchOperationResult#getStatusCode 访问操作的状态。 如果操作未执行或由于事务批处理中的另一个操作失败而中止,则此字段的值将为 424;对于导致批处理中止的操作,此字段的值将指示失败的原因。

如果存在请求超时、消失、会话不可用、网络故障或服务以某种方式返回 5xx 等问题,则 Mono 将返回错误,而不是 CosmosBatchResponse。

对返回的响应使用 CosmosBatchResponse#isSuccessStatusCode 以确保事务批处理成功。

executeCosmosBatch

public Mono executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)

执行事务批处理。

Parameters:

cosmosBatch - 批处理包含将由此容器执行的操作和分区键列表。
requestOptions - 专门应用于批处理请求的选项。

Returns:

一个 Mono 响应,其中包含事务批处理的执行详细信息。

如果事务批处理成功执行,则返回的响应时返回 CosmosBatchResponse#getStatusCode 的值将设置为 200}。

如果事务批处理中的操作在执行过程中失败,则不会提交批处理的更改,并且失败操作的状态由 CosmosBatchResponse#getStatusCode 或 异常提供。 若要获取有关在出现某些用户错误(如冲突、找不到等)时失败的操作的信息,可以枚举响应。 这将返回 CosmosBatchOperationResult 与事务批处理中每个操作对应的实例,这些实例将按照它们添加到事务批处理的顺序返回。 对于与事务批处理中的操作对应的结果,请使用 CosmosBatchOperationResult#getStatusCode 访问操作的状态。 如果操作未执行或由于事务批处理中的另一个操作失败而中止,则此字段的值将为 424;对于导致批处理中止的操作,此字段的值将指示失败的原因。

如果存在请求超时、消失、会话不可用、网络故障或服务以某种方式返回 5xx 等问题,则 Mono 将返回错误,而不是 CosmosBatchResponse。

对返回的响应使用 CosmosBatchResponse#isSuccessStatusCode 以确保事务批处理成功。

getConflict

public CosmosAsyncConflict getConflict(String id)

获取使用 CosmosAsyncConflict 当前容器作为上下文的对象。

Parameters:

id - Cosmos 冲突的 ID。

Returns:

Cosmos 冲突。

getDatabase

public CosmosAsyncDatabase getDatabase()

获取当前容器的父 CosmosAsyncDatabase 级。

Returns:

getFeedRanges

public Mono<>> getFeedRanges()

获取可用于并行化源操作的列表 FeedRange

cosmosAsyncContainer.getFeedRanges()
     .subscribe(feedRanges -> {
         for (FeedRange feedRange : feedRanges) {
             System.out.println("Feed range: " + feedRange);
         }
     });

Returns:

不可修改的列表 FeedRange

getId

public String getId()

获取 的 CosmosAsyncContainerID。

Returns:

getScripts

public CosmosAsyncScripts getScripts()

CosmosAsyncScripts获取使用当前容器作为上下文的 。

这可以进一步用于对 Cosmos 脚本执行各种操作。

Returns:

openConnectionsAndInitCaches

@Deprecated
public Mono openConnectionsAndInitCaches()

已放弃

尽力通过预热当前读取区域的缓存和连接来初始化容器。

根据容器具有的分区数,所需的总时间也会更改。 但通常可以使用以下公式来获取估计时间:如果建立连接需要 200 毫秒,并且容器中有 100 个分区,则获取地址列表后,大约需要 (100 * 4 / CPUCore) * 200 毫秒才能打开所有连接

注意:理想情况下,在任何工作负载之前,在应用程序初始化期间,只应调用此 API 一次。 如果出现任何暂时性错误,调用方应使用该错误并继续执行常规工作负荷。

Returns:

Void 的单声道。

openConnectionsAndInitCaches

@Deprecated
public Mono openConnectionsAndInitCaches(int numProactiveConnectionRegions)

已放弃

尽力通过预热缓存和连接到首选区域列表中的指定编号区域来初始化容器。

根据容器具有的分区数,所需的总时间也会更改。 但通常可以使用以下公式来获取估计时间:如果建立连接需要 200 毫秒,并且容器中有 100 个分区,则大约需要 (100 * 4 / (10 * CPUCores) ) * 200 毫秒 * RegionsWithProactiveConnections 在获取地址列表后打开所有连接

注意:理想情况下,在任何工作负载之前,在应用程序初始化期间,只应调用此 API 一次。 如果出现任何暂时性错误,调用方应使用该错误并继续执行常规工作负荷。

为了尽量减少与预热缓存和打开连接相关的延迟,主动连接区域的编号不能超过 CosmosContainerProactiveInitConfigBuilder#MAX_NO_OF_PROACTIVE_CONNECTION_REGIONS

Parameters:

numProactiveConnectionRegions - 要主动连接到的区域数

Returns:

Void 的单声道。

queryConflicts

public CosmosPagedFlux queryConflicts(String query)

查询当前容器中的所有冲突。

try {
     cosmosAsyncContainer.queryConflicts(query).
         byPage(100)
         .subscribe(response -> {
             for (CosmosConflictProperties conflictProperties : response.getResults()) {
                 System.out.println(conflictProperties);
             }
         }, throwable -> {
             throwable.printStackTrace();
         });
 } catch (CosmosException ce) {
     ce.printStackTrace();
 } catch (Exception e) {
     e.printStackTrace();
 }

Parameters:

query - 查询。

Returns:

一个 , CosmosPagedFlux<T> 其中包含获取的冲突或错误的一个或多个源响应页。

queryConflicts

public CosmosPagedFlux queryConflicts(String query, CosmosQueryRequestOptions options)

查询当前容器中的所有冲突。

Parameters:

query - 查询。
options - 查询请求选项 (可选) 。

Returns:

一个 , CosmosPagedFlux<T> 其中包含获取的冲突或错误的一个或多个源响应页。

read

public Mono read()

读取当前容器。

订阅后将执行该操作。 成功完成后, Mono 将包含单个 Cosmos 容器响应和读取容器。 如果失败, Mono 将出错。

Returns:

一个 , Mono 其中包含单个 Cosmos 容器响应,其中包含读取容器或错误。

read

public Mono read(CosmosContainerRequestOptions options)

在指定其他选项(如 If-Match)时读取当前容器。

订阅后将执行该操作。 成功完成后, Mono 将包含单个 Cosmos 容器响应和读取容器。 如果失败, Mono 将出错。

Parameters:

options - Cosmos 容器请求选项。

Returns:

一个 , Mono 其中包含单个 Cosmos 容器响应,其中包含读取容器或错误。

readAllConflicts

public CosmosPagedFlux readAllConflicts(CosmosQueryRequestOptions options)

列出当前容器中的所有冲突。

try {
     cosmosAsyncContainer.readAllConflicts(options).
         byPage(100)
         .subscribe(response -> {
             for (CosmosConflictProperties conflictProperties : response.getResults()) {
                 System.out.println(conflictProperties);
             }
         }, throwable -> {
             throwable.printStackTrace();
         });
 } catch (CosmosException ce) {
     ce.printStackTrace();
 } catch (Exception e) {
     e.printStackTrace();
 }

Parameters:

options - 查询请求选项

Returns:

一个 , CosmosPagedFlux<T> 其中包含获取的冲突或错误的一个或多个源响应页。

readThroughput

public Mono readThroughput()

读取为当前容器预配的吞吐量。

Mono<ThroughputResponse> throughputResponseMono = cosmosAsyncContainer.readThroughput();
 throughputResponseMono.subscribe(throughputResponse -> {
     System.out.println(throughputResponse);
 }, throwable -> {
     throwable.printStackTrace();
 });

Returns:

包含吞吐量响应的单声道。

replace

public Mono replace(CosmosContainerProperties containerProperties)

替换当前容器的属性。

订阅后将执行该操作。 Mono成功完成时的 将包含单个 Cosmos 容器响应,其中包含替换的容器属性。 如果失败, Mono 将出错。

Parameters:

containerProperties - 容器属性

Returns:

一个 , Mono 其中包含单个 Cosmos 容器响应以及替换的容器属性或错误。

replace

public Mono replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)

使用非默认请求选项时替换当前容器属性。

订阅后将执行该操作。 Mono成功完成时的 将包含单个 Cosmos 容器响应,其中包含替换的容器属性。 如果失败, Mono 将出错。

Parameters:

containerProperties - 容器属性
options - Cosmos 容器请求选项。

Returns:

一个 , Mono 其中包含单个 Cosmos 容器响应以及替换的容器属性或错误。

replaceThroughput

public Mono replaceThroughput(ThroughputProperties throughputProperties)

替换吞吐量。

ThroughputProperties throughputProperties =
     ThroughputProperties.createAutoscaledThroughput(1000);

 cosmosAsyncContainer.replaceThroughput(throughputProperties)
     .subscribe(throughputResponse -> {
             System.out.println(throughputResponse);
         },
         throwable -> {
             throwable.printStackTrace();
         });

Parameters:

throughputProperties - 吞吐量属性。

Returns:

包含吞吐量响应的单声道。

适用于