Class CosmosAsyncContainer
-
Method Summary
Modifier and TypeMethodDescription<T> Mono<CosmosItemResponse<T>>
createItem
(T item) Creates an item.<T> Mono<CosmosItemResponse<T>>
createItem
(T item, CosmosItemRequestOptions options) Creates a Cosmos item.<T> Mono<CosmosItemResponse<T>>
createItem
(T item, PartitionKey partitionKey, CosmosItemRequestOptions options) Creates an item.delete()
Deletes the current container.delete
(CosmosContainerRequestOptions options) Deletes the containerdeleteAllItemsByPartitionKey
(PartitionKey partitionKey, CosmosItemRequestOptions options) Deletes all items in the Container with the specified partitionKey value.deleteItem
(String itemId, PartitionKey partitionKey) Deletes an item.deleteItem
(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options) Deletes the item.<T> Mono<CosmosItemResponse<Object>>
deleteItem
(T item, CosmosItemRequestOptions options) Deletes the item.void
enableGlobalThroughputControlGroup
(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig) Enable the throughput control group with global control mode.void
Enable the throughput control group with local control mode.<TContext> Flux<CosmosBulkOperationResponse<TContext>>
executeBulkOperations
(Flux<CosmosItemOperation> operations) Executes flux of operations in Bulk.<TContext> Flux<CosmosBulkOperationResponse<TContext>>
executeBulkOperations
(Flux<CosmosItemOperation> operations, CosmosBulkExecutionOptions bulkOptions) Executes flux of operations in Bulk.executeCosmosBatch
(CosmosBatch cosmosBatch) Executes the transactional batch.executeCosmosBatch
(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions) Executes the transactional batch.getConflict
(String id) Gets aCosmosAsyncConflict
object using current container for context.Gets the parentCosmosAsyncDatabase
for the current container.Obtains a list ofFeedRange
that can be used to parallelize Feed operations.getId()
Get the id of theCosmosAsyncContainer
.Gets aCosmosAsyncScripts
using the current container as context.Deprecated.openConnectionsAndInitCaches
(int numProactiveConnectionRegions) Deprecated.<T> Mono<CosmosItemResponse<T>>
patchItem
(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class<T> itemType) Run partial update that modifies specific properties or fields of the item without replacing the entire item.<T> Mono<CosmosItemResponse<T>>
patchItem
(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class<T> itemType) Run partial update that modifies specific properties or fields of the item without replacing the entire item.<T> CosmosPagedFlux<T>
queryChangeFeed
(CosmosChangeFeedRequestOptions options, Class<T> classType) Query for items in the change feed of the current container using theCosmosChangeFeedRequestOptions
.queryConflicts
(String query) Queries all the conflicts in the current container.queryConflicts
(String query, CosmosQueryRequestOptions options) Queries all the conflicts in the current container.<T> CosmosPagedFlux<T>
queryItems
(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class<T> classType) Query for items in the current container using aSqlQuerySpec
andCosmosQueryRequestOptions
.<T> CosmosPagedFlux<T>
queryItems
(SqlQuerySpec querySpec, Class<T> classType) Query for items in the current container using aSqlQuerySpec
.<T> CosmosPagedFlux<T>
queryItems
(String query, CosmosQueryRequestOptions options, Class<T> classType) Query for items in the current container using a string.<T> CosmosPagedFlux<T>
queryItems
(String query, Class<T> classType) Query for items in the current container.read()
Reads the current container.read
(CosmosContainerRequestOptions options) Reads the current container while specifying additional options such as If-Match.Lists all the conflicts in the current container.<T> CosmosPagedFlux<T>
readAllItems
(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class<T> classType) Reads all the items of a logical partition<T> CosmosPagedFlux<T>
readAllItems
(PartitionKey partitionKey, Class<T> classType) Reads all the items of a logical partition<T> Mono<CosmosItemResponse<T>>
readItem
(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class<T> itemType) Reads an item by itemId using a configuredCosmosItemRequestOptions
.<T> Mono<CosmosItemResponse<T>>
readItem
(String itemId, PartitionKey partitionKey, Class<T> itemType) Reads an item by itemId.<T> Mono<FeedResponse<T>>
readMany
(List<CosmosItemIdentity> itemIdentityList, CosmosReadManyRequestOptions requestOptions, Class<T> classType) Reads many documents.<T> Mono<FeedResponse<T>>
readMany
(List<CosmosItemIdentity> itemIdentityList, Class<T> classType) Reads many documents.<T> Mono<FeedResponse<T>>
readMany
(List<CosmosItemIdentity> itemIdentityList, String sessionToken, Class<T> classType) Reads many documents.Read the throughput provisioned for the current container.replace
(CosmosContainerProperties containerProperties) Replaces the current container's properties.replace
(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options) Replaces the current container properties while using non-default request options.<T> Mono<CosmosItemResponse<T>>
replaceItem
(T item, String itemId, PartitionKey partitionKey) Replaces an existing item in a container with a new item.<T> Mono<CosmosItemResponse<T>>
replaceItem
(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options) Replaces an existing item in a container with a new item.replaceThroughput
(ThroughputProperties throughputProperties) Replace the throughput.<T> Mono<CosmosItemResponse<T>>
upsertItem
(T item) Upserts an item.<T> Mono<CosmosItemResponse<T>>
upsertItem
(T item, CosmosItemRequestOptions options) Upserts an item.<T> Mono<CosmosItemResponse<T>>
upsertItem
(T item, PartitionKey partitionKey, CosmosItemRequestOptions options) Upserts an item.
-
Method Details
-
getId
Get the id of theCosmosAsyncContainer
.- Returns:
- the id of the
CosmosAsyncContainer
.
-
read
Reads the current container.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos container response with the read container. In case of failure theMono
will error.- Returns:
- an
Mono
containing the single Cosmos container response with the read container or an error.
-
read
Reads the current container while specifying additional options such as If-Match.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos container response with the read container. In case of failure theMono
will error.- Parameters:
options
- the Cosmos container request options.- Returns:
- an
Mono
containing the single Cosmos container response with the read container or an error.
-
delete
Deletes the containerAfter subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos container response for the deleted database. In case of failure theMono
will error.- Parameters:
options
- the request options.- Returns:
- an
Mono
containing the single Cosmos container response for the deleted database or an error.
-
delete
Deletes the current container.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos container response for the deleted container. In case of failure theMono
will error.- Returns:
- an
Mono
containing the single Cosmos container response for the deleted container or an error.
-
replace
Replaces the current container's properties.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos container response with the replaced container properties. In case of failure theMono
will error.- Parameters:
containerProperties
- the container properties- Returns:
- an
Mono
containing the single Cosmos container response with the replaced container properties or an error.
-
replace
public Mono<CosmosContainerResponse> replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options) Replaces the current container properties while using non-default request options.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos container response with the replaced container properties. In case of failure theMono
will error.- Parameters:
containerProperties
- the container propertiesoptions
- the Cosmos container request options.- Returns:
- an
Mono
containing the single Cosmos container response with the replaced container properties or an error.
-
createItem
Creates an item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single resource response with the created Cosmos item. In case of failure theMono
will error.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the Cosmos item represented as a POJO or Cosmos item object.- Returns:
- an
Mono
containing the single resource response with the created Cosmos item or an error.
-
createItem
public <T> Mono<CosmosItemResponse<T>> createItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options) Creates an item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single resource response with the created Cosmos item. In case of failure theMono
will error.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the Cosmos item represented as a POJO or Cosmos item object.partitionKey
- the partition key.options
- the request options.- Returns:
- an
Mono
containing the single resource response with the created Cosmos item or an error.
-
createItem
Creates a Cosmos item.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the item.options
- the item request options.- Returns:
- an
Mono
containing the single resource response with the created Cosmos item or an error.
-
upsertItem
Upserts an item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single resource response with the upserted item. In case of failure theMono
will error.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the item represented as a POJO or Item object to upsert.- Returns:
- an
Mono
containing the single resource response with the upserted item or an error.
-
upsertItem
Upserts an item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single resource response with the upserted item. In case of failure theMono
will error.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the item represented as a POJO or Item object to upsert.options
- the request options.- Returns:
- an
Mono
containing the single resource response with the upserted item or an error.
-
upsertItem
public <T> Mono<CosmosItemResponse<T>> upsertItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options) Upserts an item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single resource response with the upserted item. In case of failure theMono
will error.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the item represented as a POJO or Item object to upsert.partitionKey
- the partition key.options
- the request options.- Returns:
- an
Mono
containing the single resource response with the upserted item or an error.
-
queryItems
Query for items in the current container.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();
After subscription the operation will be performed. The
CosmosPagedFlux
will contain one or several feed response of the obtained items. In case of failure theCosmosPagedFlux
will error.- Type Parameters:
T
- the type parameter.- Parameters:
query
- the query.classType
- the class type.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained items or an error.
-
openConnectionsAndInitCaches
Deprecated.Best effort to initialize the container by warming up the caches and connections for the current read region.Depending on how many partitions the container has, the total time needed will also change. But generally you can use the following formula to get an estimated time: If it took 200ms to establish a connection, and you have 100 partitions in your container then it will take around (100 * 4 / CPUCores) * 200ms to open all connections after get the address list
NOTE: This API ideally should be called only once during application initialization before any workload.
In case of any transient error, caller should consume the error and continue the regular workload.- Returns:
- Mono of Void.
-
openConnectionsAndInitCaches
Deprecated.Best effort to initialize the container by warming up the caches and connections to a specified no. of regions from the preferred list of regions.Depending on how many partitions the container has, the total time needed will also change. But generally you can use the following formula to get an estimated time: If it took 200ms to establish a connection, and you have 100 partitions in your container then it will take around (100 * 4 / (10 * CPUCores)) * 200ms * RegionsWithProactiveConnections to open all connections after get the address list
NOTE: This API ideally should be called only once during application initialization before any workload.
In case of any transient error, caller should consume the error and continue the regular workload.In order to minimize latencies associated with warming up caches and opening connections the no. of proactive connection regions cannot be more than
CosmosContainerProactiveInitConfigBuilder.MAX_NO_OF_PROACTIVE_CONNECTION_REGIONS
.- Parameters:
numProactiveConnectionRegions
- the no of regions to proactively connect to- Returns:
- Mono of Void.
-
queryItems
public <T> CosmosPagedFlux<T> queryItems(String query, CosmosQueryRequestOptions options, Class<T> classType) Query for items in the current container using a string.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();
After subscription the operation will be performed. The
CosmosPagedFlux
will contain one or several feed response of the obtained items. In case of failure theCosmosPagedFlux
will error.- Type Parameters:
T
- the type parameter.- Parameters:
query
- the query.options
- the query request options.classType
- the class type.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained items or an error.
-
queryItems
Query for items in the current container using aSqlQuerySpec
.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();
After subscription the operation will be performed. The
CosmosPagedFlux
will contain one or several feed response of the obtained items. In case of failure theCosmosPagedFlux
will error.- Type Parameters:
T
- the type parameter.- Parameters:
querySpec
- the SQL query specification.classType
- the class type.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained items or an error.
-
queryItems
public <T> CosmosPagedFlux<T> queryItems(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class<T> classType) Query for items in the current container using aSqlQuerySpec
andCosmosQueryRequestOptions
.After subscription the operation will be performed. The
Flux
will contain one or several feed response of the obtained items. In case of failure theCosmosPagedFlux
will error.- Type Parameters:
T
- the type parameter.- Parameters:
querySpec
- the SQL query specification.options
- the query request options.classType
- the class type.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained items or an error.
-
queryChangeFeed
public <T> CosmosPagedFlux<T> queryChangeFeed(CosmosChangeFeedRequestOptions options, Class<T> classType) Query for items in the change feed of the current container using theCosmosChangeFeedRequestOptions
.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();
After subscription the operation will be performed. TheFlux
will contain one or several feed response of the obtained items. In case of failure theCosmosPagedFlux
will error.- Type Parameters:
T
- the type parameter.- Parameters:
options
- the change feed request options.classType
- the class type.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained items or an error.
-
executeCosmosBatch
Executes the transactional batch.- Parameters:
cosmosBatch
- Batch having list of operation and partition key which will be executed by this container.- Returns:
- A Mono response which contains details of execution of the transactional batch.
If the transactional batch executes successfully, the value returned by
CosmosBatchResponse.getStatusCode()
on the response returned will be set to 200}.If an operation within the transactional batch fails during execution, no changes from the batch will be committed and the status of the failing operation is made available by
CosmosBatchResponse.getStatusCode()
or by the exception. To obtain information about the operations that failed in case of some user error like conflict, not found etc, the response can be enumerated. This returnsCosmosBatchOperationResult
instances corresponding to each operation in the transactional batch in the order they were added to the transactional batch. For a result corresponding to an operation within the transactional batch, useCosmosBatchOperationResult.getStatusCode()
to access the status of the operation. If the operation was not executed or it was aborted due to the failure of another operation within the transactional batch, the value of this field will be 424; for the operation that caused the batch to abort, the value of this field will indicate the cause of failure.If there are issues such as request timeouts, Gone, session not available, network failure or if the service somehow returns 5xx then the Mono will return error instead of CosmosBatchResponse.
Use
CosmosBatchResponse.isSuccessStatusCode()
on the response returned to ensure that the transactional batch succeeded.
-
executeCosmosBatch
public Mono<CosmosBatchResponse> executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions) Executes the transactional batch.- Parameters:
cosmosBatch
- Batch having list of operation and partition key which will be executed by this container.requestOptions
- Options that apply specifically to batch request.- Returns:
- A Mono response which contains details of execution of the transactional batch.
If the transactional batch executes successfully, the value returned by
CosmosBatchResponse.getStatusCode()
on the response returned will be set to 200}.If an operation within the transactional batch fails during execution, no changes from the batch will be committed and the status of the failing operation is made available by
CosmosBatchResponse.getStatusCode()
or by the exception. To obtain information about the operations that failed in case of some user error like conflict, not found etc, the response can be enumerated. This returnsCosmosBatchOperationResult
instances corresponding to each operation in the transactional batch in the order they were added to the transactional batch. For a result corresponding to an operation within the transactional batch, useCosmosBatchOperationResult.getStatusCode()
to access the status of the operation. If the operation was not executed or it was aborted due to the failure of another operation within the transactional batch, the value of this field will be 424; for the operation that caused the batch to abort, the value of this field will indicate the cause of failure.If there are issues such as request timeouts, Gone, session not available, network failure or if the service somehow returns 5xx then the Mono will return error instead of CosmosBatchResponse.
Use
CosmosBatchResponse.isSuccessStatusCode()
on the response returned to ensure that the transactional batch succeeded.
-
executeBulkOperations
public <TContext> Flux<CosmosBulkOperationResponse<TContext>> executeBulkOperations(Flux<CosmosItemOperation> operations) Executes flux of operations in Bulk.- Type Parameters:
TContext
- The context for the bulk processing.- Parameters:
operations
- Flux of operation which will be executed by this container.- Returns:
- A Flux of
CosmosBulkOperationResponse
which contains operation and it's response or exception.To create a operation which can be executed here, use
CosmosBulkOperations
. For eg. for a upsert operation useCosmosBulkOperations.getUpsertItemOperation(Object, PartitionKey)
We can get the corresponding operation using
To check if the operation had any exception, useCosmosBulkOperationResponse.getOperation()
and it's response usingCosmosBulkOperationResponse.getResponse()
. If the operation was executed successfully, the value returned byCosmosBulkItemResponse.isSuccessStatusCode()
will be true. To get actual status useCosmosBulkItemResponse.getStatusCode()
.CosmosBulkOperationResponse.getException()
to get the exception.
-
executeBulkOperations
public <TContext> Flux<CosmosBulkOperationResponse<TContext>> executeBulkOperations(Flux<CosmosItemOperation> operations, CosmosBulkExecutionOptions bulkOptions) Executes flux of operations in Bulk.- Type Parameters:
TContext
- The context for the bulk processing.- Parameters:
operations
- Flux of operation which will be executed by this container.bulkOptions
- Options that apply for this Bulk request which specifies options regarding execution like concurrency, batching size, interval and context.- Returns:
- A Flux of
CosmosBulkOperationResponse
which contains operation and it's response or exception.To create a operation which can be executed here, use
CosmosBulkOperations
. For eg. for a upsert operation useCosmosBulkOperations.getUpsertItemOperation(Object, PartitionKey)
We can get the corresponding operation using
To check if the operation had any exception, useCosmosBulkOperationResponse.getOperation()
and it's response usingCosmosBulkOperationResponse.getResponse()
. If the operation was executed successfully, the value returned byCosmosBulkItemResponse.isSuccessStatusCode()
will be true. To get actual status useCosmosBulkItemResponse.getStatusCode()
.CosmosBulkOperationResponse.getException()
to get the exception.
-
readItem
public <T> Mono<CosmosItemResponse<T>> readItem(String itemId, PartitionKey partitionKey, Class<T> itemType) Reads an item by itemId.
This operation is used to retrieve a single item from a container based on its unique identifier (ID) and partition key. The readItem operation provides direct access to a specific item using its unique identifier, which consists of the item's ID and the partition key value. This operation is efficient for retrieving a known item by its ID and partition key without the need for complex querying.After subscription the operation will be performed. The
Mono
upon successful completion will contain an item response with the read item.// 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(); }); // ...
- Type Parameters:
T
- the type parameter.- Parameters:
itemId
- the item id.partitionKey
- the partition key.itemType
- the item type.- Returns:
- an
Mono
containing the Cosmos item response with the read item or an error.
-
readItem
public <T> Mono<CosmosItemResponse<T>> readItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class<T> itemType) Reads an item by itemId using a configuredCosmosItemRequestOptions
.
This operation is used to retrieve a single item from a container based on its unique identifier (ID) and partition key. The readItem operation provides direct access to a specific item using its unique identifier, which consists of the item's ID and the partition key value. This operation is efficient for retrieving a known item by its ID and partition key without the need for complex querying.After subscription the operation will be performed. The
Mono
upon successful completion will contain a Cosmos item response with the read item.- Type Parameters:
T
- the type parameter.- Parameters:
itemId
- the item id.partitionKey
- the partition key.options
- the request (Optional)CosmosItemRequestOptions
.itemType
- the item type.- Returns:
- an
Mono
containing the Cosmos item response with the read item or an error.
-
readMany
public <T> Mono<FeedResponse<T>> readMany(List<CosmosItemIdentity> itemIdentityList, Class<T> classType) Reads many documents. Useful for reading many documents with a particular id and partition key in a single request. If any document from the list is missing, no exception will be thrown.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();
- Type Parameters:
T
- the type parameter- Parameters:
itemIdentityList
- CosmosItem id and partition key tuple of items that that needs to be readclassType
- class type- Returns:
- a Mono with feed response of cosmos items
-
readMany
public <T> Mono<FeedResponse<T>> readMany(List<CosmosItemIdentity> itemIdentityList, String sessionToken, Class<T> classType) Reads many documents. Useful for reading many documents with a particular id and partition key in a single request. If any document from the list is missing, no exception will be thrown.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();
- Type Parameters:
T
- the type parameter- Parameters:
itemIdentityList
- CosmosItem id and partition key tuple of items that that needs to be readsessionToken
- the optional Session token - null if the read can be made without specific session tokenclassType
- class type- Returns:
- a Mono with feed response of cosmos items or error
-
readMany
public <T> Mono<FeedResponse<T>> readMany(List<CosmosItemIdentity> itemIdentityList, CosmosReadManyRequestOptions requestOptions, Class<T> classType) Reads many documents. Useful for reading many documents with a particular id and partition key in a single request. If any document from the list is missing, no exception will be thrown.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();
- Type Parameters:
T
- the type parameter- Parameters:
itemIdentityList
- CosmosItem id and partition key tuple of items that that needs to be readrequestOptions
- the optional request optionclassType
- class type- Returns:
- a Mono with feed response of cosmos items or error
-
readAllItems
Reads all the items of a logical partitioncosmosAsyncContainer .readAllItems(new PartitionKey(partitionKey), Passenger.class) .byPage(100) .flatMap(passengerFeedResponse -> { for (Passenger passenger : passengerFeedResponse.getResults()) { System.out.println(passenger); } return Flux.empty(); }) .subscribe();
After subscription the operation will be performed. The
CosmosPagedFlux
will contain one or several feed responses of the read Cosmos items. In case of failure theCosmosPagedFlux
will error.- Type Parameters:
T
- the type parameter.- Parameters:
partitionKey
- the partition key value of the documents that need to be readclassType
- the class type.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the read Cosmos items or an error.
-
readAllItems
public <T> CosmosPagedFlux<T> readAllItems(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class<T> classType) Reads all the items of a logical partitioncosmosAsyncContainer .readAllItems(new PartitionKey(partitionKey), Passenger.class) .byPage(100) .flatMap(passengerFeedResponse -> { for (Passenger passenger : passengerFeedResponse.getResults()) { System.out.println(passenger); } return Flux.empty(); }) .subscribe();
After subscription the operation will be performed. TheCosmosPagedFlux
will contain one or several feed responses of the read Cosmos items. In case of failure theCosmosPagedFlux
will error.- Type Parameters:
T
- the type parameter.- Parameters:
partitionKey
- the partition key value of the documents that need to be readoptions
- the feed options (Optional).classType
- the class type.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the read Cosmos items or an error.
-
replaceItem
public <T> Mono<CosmosItemResponse<T>> replaceItem(T item, String itemId, PartitionKey partitionKey) Replaces an existing item in a container with a new item. It performs a complete replacement of the item, replacing all its properties with the properties of the new itemcosmosAsyncContainer.replaceItem( newPassenger, oldPassenger.getId(), new PartitionKey(oldPassenger.getId()), new CosmosItemRequestOptions()) .subscribe(response -> { System.out.println(response); }, throwable -> { throwable.printStackTrace(); });
After subscription the operation will be performed. TheMono
upon successful completion will contain a single Cosmos item response with the replaced item.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the item to replace (containing the item id).itemId
- the item id.partitionKey
- the partition key.- Returns:
- an
Mono
containing the Cosmos item resource response with the replaced item or an error.
-
replaceItem
public <T> Mono<CosmosItemResponse<T>> replaceItem(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options) Replaces an existing item in a container with a new item. It performs a complete replacement of the item, replacing all its properties with the properties of the new itemcosmosAsyncContainer.replaceItem( newPassenger, oldPassenger.getId(), new PartitionKey(oldPassenger.getId()), new CosmosItemRequestOptions()) .subscribe(response -> { System.out.println(response); }, throwable -> { throwable.printStackTrace(); });
After subscription the operation will be performed. TheMono
upon successful completion will contain a single Cosmos item response with the replaced item.- Type Parameters:
T
- the type parameter.- Parameters:
item
- the item to replace (containing the item id).itemId
- the item id.partitionKey
- the partition key.options
- the request comosItemRequestOptions (Optional).- Returns:
- an
Mono
containing the Cosmos item resource response with the replaced item or an error.
-
patchItem
public <T> Mono<CosmosItemResponse<T>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class<T> itemType) Run partial update that modifies specific properties or fields of the item without replacing the entire item.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(); });
After subscription the operation will be performed. TheMono
upon successful completion will contain a single Cosmos item response with the patched item.- Type Parameters:
T
- the type parameter.- Parameters:
itemId
- the item id.partitionKey
- the partition key.cosmosPatchOperations
- Represents a container having list of operations to be sequentially applied to the referred Cosmos item.itemType
- the item type.- Returns:
- an
Mono
containing the Cosmos item resource response with the patched item or an error.
-
patchItem
public <T> Mono<CosmosItemResponse<T>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class<T> itemType) Run partial update that modifies specific properties or fields of the item without replacing the entire item.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(); });
After subscription the operation will be performed. TheMono
upon successful completion will contain a single Cosmos item response with the patched item.- Type Parameters:
T
- the type parameter.- Parameters:
itemId
- the item id.partitionKey
- the partition key.cosmosPatchOperations
- Represents a container having list of operations to be sequentially applied to the referred Cosmos item.options
- the request options.itemType
- the item type.- Returns:
- an
Mono
containing the Cosmos item resource response with the patched item or an error.
-
deleteItem
Deletes an item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos item response for the deleted item.cosmosAsyncContainer.deleteItem( passenger.getId(), new PartitionKey(passenger.getId()) ).subscribe(response -> { System.out.println(response); }, throwable -> { CosmosException cosmosException = (CosmosException) throwable; cosmosException.printStackTrace(); });
- Parameters:
itemId
- the item id.partitionKey
- the partition key.- Returns:
- an
Mono
containing the Cosmos item resource response.
-
deleteItem
public Mono<CosmosItemResponse<Object>> deleteItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options) Deletes the item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos item response for the deleted item.- Parameters:
itemId
- id of the item.partitionKey
- partitionKey of the item.options
- the request options (Optional).- Returns:
- an
Mono
containing the Cosmos item resource response.
-
deleteAllItemsByPartitionKey
public Mono<CosmosItemResponse<Object>> deleteAllItemsByPartitionKey(PartitionKey partitionKey, CosmosItemRequestOptions options) Deletes all items in the Container with the specified partitionKey value. Starts an asynchronous Cosmos DB background operation which deletes all items in the Container with the specified value. The asynchronous Cosmos DB background operation runs using a percentage of user RUs.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos item response for all the deleted items.- Parameters:
partitionKey
- partitionKey of the item.options
- the request options.- Returns:
- an
Mono
containing the Cosmos item resource response.
-
deleteItem
Deletes the item.After subscription the operation will be performed. The
Mono
upon successful completion will contain a single Cosmos item response for the deleted item.- Type Parameters:
T
- the type parameter.- Parameters:
item
- item to be deleted.options
- the request options.- Returns:
- an
Mono
containing the Cosmos item resource response.
-
getScripts
Gets aCosmosAsyncScripts
using the current container as context.This can be further used to perform various operations on Cosmos scripts.
- Returns:
- the
CosmosAsyncScripts
.
-
readAllConflicts
public CosmosPagedFlux<CosmosConflictProperties> readAllConflicts(CosmosQueryRequestOptions options) Lists all the conflicts in the current container.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
- the query request options- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained conflicts or an error.
-
queryConflicts
Queries all the conflicts in the current container.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
- the query.- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained conflicts or an error.
-
queryConflicts
public CosmosPagedFlux<CosmosConflictProperties> queryConflicts(String query, CosmosQueryRequestOptions options) Queries all the conflicts in the current container.- Parameters:
query
- the query.options
- the query request options (Optional).- Returns:
- a
CosmosPagedFlux
containing one or several feed response pages of the obtained conflicts or an error.
-
getConflict
Gets aCosmosAsyncConflict
object using current container for context.- Parameters:
id
- the id of the Cosmos conflict.- Returns:
- a Cosmos conflict.
-
replaceThroughput
Replace the throughput.ThroughputProperties throughputProperties = ThroughputProperties.createAutoscaledThroughput(1000); cosmosAsyncContainer.replaceThroughput(throughputProperties) .subscribe(throughputResponse -> { System.out.println(throughputResponse); }, throwable -> { throwable.printStackTrace(); });
- Parameters:
throughputProperties
- the throughput properties.- Returns:
- the mono containing throughput response.
-
readThroughput
Read the throughput provisioned for the current container.Mono<ThroughputResponse> throughputResponseMono = cosmosAsyncContainer.readThroughput(); throughputResponseMono.subscribe(throughputResponse -> { System.out.println(throughputResponse); }, throwable -> { throwable.printStackTrace(); });
- Returns:
- the mono containing throughput response.
-
getDatabase
Gets the parentCosmosAsyncDatabase
for the current container.- Returns:
- the
CosmosAsyncDatabase
.
-
getFeedRanges
Obtains a list ofFeedRange
that can be used to parallelize Feed operations.cosmosAsyncContainer.getFeedRanges() .subscribe(feedRanges -> { for (FeedRange feedRange : feedRanges) { System.out.println("Feed range: " + feedRange); } });
- Returns:
- An unmodifiable list of
FeedRange
-
enableLocalThroughputControlGroup
Enable the throughput control group with local control mode.
ThroughputControlGroupConfig groupConfig = new ThroughputControlGroupConfigBuilder() .groupName("localControlGroup") .targetThroughputThreshold(0.1) .build(); container.enableLocalThroughputControlGroup(groupConfig);
- Parameters:
groupConfig
- AThroughputControlGroupConfig
.
-
enableGlobalThroughputControlGroup
public void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig) Enable the throughput control group with global control mode. The defined throughput limit will be shared across different clients.
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
- The throughput control group configuration, seeGlobalThroughputControlGroup
.globalControlConfig
- The global throughput control configuration, seeGlobalThroughputControlConfig
.
-
CosmosClientBuilder.openConnectionsAndInitCaches(CosmosContainerProactiveInitConfig)
instead.