public CosmosItemResponse deleteItem(T item, CosmosItemRequestOptions options)
Elimina un elemento del contenedor actual.
Parameters:
item
- el elemento que se va a eliminar.
options
- las opciones.
Returns:
la respuesta del elemento de Cosmos.
patchItem
public CosmosItemResponse patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class itemType)
Ejecute una actualización parcial que modifique propiedades o campos específicos del elemento sin reemplazar todo el elemento.
CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();
cosmosPatchOperations
.add("/departure", "SEA")
.increment("/trips", 1);
CosmosItemResponse<Passenger> response = cosmosContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class);
Parameters:
itemId
- el identificador del elemento.
partitionKey
- la clave de partición.
cosmosPatchOperations
- Representa un contenedor que tiene una lista de operaciones que se van a aplicar secuencialmente al elemento de Cosmos al que se hace referencia.
options
- las opciones de solicitud.
itemType
- el tipo de elemento.
Returns:
la respuesta del recurso de elemento de Cosmos con el elemento revisado o una excepción.
patchItem
public CosmosItemResponse patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class itemType)
Ejecute una actualización parcial que modifique propiedades o campos específicos del elemento sin reemplazar todo el elemento.
CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();
cosmosPatchOperations
.add("/departure", "SEA")
.increment("/trips", 1);
CosmosItemResponse<Passenger> response = cosmosContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class);
Parameters:
itemId
- el identificador del elemento.
partitionKey
- la clave de partición.
cosmosPatchOperations
- Representa un contenedor que tiene una lista de operaciones que se van a aplicar secuencialmente al elemento de Cosmos al que se hace referencia.
itemType
- el tipo de elemento.
Returns:
la respuesta del recurso de elemento de Cosmos con el elemento revisado o una excepción.
queryChangeFeed
public CosmosPagedIterable queryChangeFeed(CosmosChangeFeedRequestOptions options, Class classType)
Consulte los elementos de la fuente de cambios del contenedor actual mediante CosmosChangeFeedRequestOptions .
CosmosChangeFeedRequestOptions options = CosmosChangeFeedRequestOptions
.createForProcessingFromNow(FeedRange.forFullRange())
.allVersionsAndDeletes();
Iterable<FeedResponse<Passenger>> feedResponses = cosmosContainer.queryChangeFeed(options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : feedResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
La página siguiente se puede recuperar llamando a queryChangeFeed de nuevo con una nueva instancia de CosmosChangeFeedRequestOptions creada a partir del token de continuación de la instancia devuelta FeedResponse<T> anteriormente.
Parameters:
options
- las opciones de solicitud de fuente de cambios.
classType
- el tipo de clase .
Returns:
queryItems
public CosmosPagedIterable queryItems(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class classType)
Consulta de elementos del contenedor actual que devuelve los resultados como CosmosPagedIterable<T> .
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);
Iterable<FeedResponse<Passenger>> queryResponses = cosmosContainer.queryItems(sqlQuerySpec, options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : queryResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
Parameters:
querySpec
- la especificación de consulta.
options
- las opciones.
classType
- el tipo de clase .
Returns:
queryItems
public CosmosPagedIterable queryItems(String query, CosmosQueryRequestOptions options, Class classType)
Consulta de elementos del contenedor actual que devuelve los resultados como CosmosPagedIterable<T> .
CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
String query = "SELECT * FROM Passenger WHERE Passenger.departure IN ('SEA', 'IND')";
Iterable<FeedResponse<Passenger>> queryResponses = cosmosContainer.queryItems(query, options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : queryResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
Parameters:
query
- la consulta.
options
- las opciones.
classType
- el tipo de clase .
Returns:
readAllItems
public CosmosPagedIterable readAllItems(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class classType)
Lee todos los elementos de una partición lógica que devuelven los resultados como CosmosPagedIterable<T> .
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
partitionKey
- el valor de clave de partición de los documentos que deben leerse
options
- las opciones de fuente.
classType
- el tipo de clase .
Returns:
readAllItems
public CosmosPagedIterable readAllItems(PartitionKey partitionKey, Class classType)
Lee todos los elementos de una partición lógica que devuelven los resultados como CosmosPagedIterable<T> .
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
partitionKey
- el valor de clave de partición de los documentos que deben leerse
classType
- el tipo de clase .
Returns:
readItem
public CosmosItemResponse readItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class itemType)
Lee un elemento del contenedor actual mientras especifica opciones adicionales.
Esta operación se usa para recuperar un solo elemento de un contenedor en función de su identificador único (ID) y clave de partición. La operación readItem proporciona acceso directo a un elemento específico mediante su identificador único, que consta del identificador del elemento y del valor de clave de partición. Esta operación es eficaz para recuperar un elemento conocido por su identificador y clave de partición sin necesidad de realizar consultas complejas.
Parameters:
itemId
- el identificador del elemento.
partitionKey
- la clave de partición.
options
- las opciones (opcional).
itemType
- el tipo de clase de elemento.
Returns:
la respuesta del elemento de Cosmos.
readItem
public CosmosItemResponse readItem(String itemId, PartitionKey partitionKey, Class itemType)
Lee un elemento del contenedor actual.
Esta operación se usa para recuperar un solo elemento de un contenedor en función de su identificador único (ID) y clave de partición. La operación readItem proporciona acceso directo a un elemento específico mediante su identificador único, que consta del identificador del elemento y del valor de clave de partición. Esta operación es eficaz para recuperar un elemento conocido por su identificador y clave de partición sin necesidad de realizar consultas complejas.
// Read an item
try {
CosmosItemResponse<Passenger> response = cosmosContainer.readItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
Passenger.class
);
Passenger passengerItem = response.getItem();
} catch (NotFoundException e) {
// catch exception if item not found
System.out.printf("Passenger with item id %s not found\n",
passenger.getId());
} catch (Exception e) {
System.out.println(e.getMessage());
}
// ...
Parameters:
itemId
- el identificador del elemento.
partitionKey
- la clave de partición.
itemType
- el tipo de clase de elemento.
Returns:
la respuesta del elemento de Cosmos.
readMany
public FeedResponse readMany(List itemIdentityList, Class classType)
Lee muchos documentos. Resulta útil para leer muchos documentos con un identificador determinado y una clave de partición en una sola solicitud. Si falta algún documento de la lista, no se producirá ninguna excepción.
List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));
FeedResponse<Passenger> passengerFeedResponse = cosmosContainer.readMany(itemIdentityList, Passenger.class);
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
Parameters:
itemIdentityList
- Identificador de CosmosItem y tupla de clave de partición de elementos que deben leerse
classType
- tipo de clase
Returns:
un mono con respuesta de fuente de elementos de Cosmos
readMany
public FeedResponse readMany(List itemIdentityList, String sessionToken, Class classType)
Lee muchos documentos. Resulta útil para leer muchos documentos con un identificador determinado y una clave de partición en una sola solicitud. Si falta algún documento de la lista, no se producirá ninguna excepción.
List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));
FeedResponse<Passenger> passengerFeedResponse = cosmosContainer.readMany(itemIdentityList, Passenger.class);
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
Parameters:
itemIdentityList
- Identificador de CosmosItem y tupla de clave de partición de elementos que deben leerse
sessionToken
- el token de sesión opcional: null si se puede realizar la lectura sin un token de sesión específico.
classType
- tipo de clase
Returns:
un mono con respuesta de fuente de elementos de Cosmos
replaceItem
public CosmosItemResponse replaceItem(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
Reemplaza un elemento existente en un contenedor por un nuevo elemento. Realiza un reemplazo completo del elemento, reemplazando todas sus propiedades por las propiedades del nuevo elemento.
CosmosItemResponse<Passenger> response = cosmosContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions());
Parameters:
item
- el elemento.
itemId
- el identificador del elemento.
partitionKey
- la clave de partición.
options
- las opciones.
Returns:
la respuesta del elemento de Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item)
Upserts un elemento de Cosmos en el contenedor actual.
Parameters:
item
- el elemento.
Returns:
la respuesta del elemento de Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item, CosmosItemRequestOptions options)
Upserts un elemento de sincronización de Cosmos de elemento al especificar opciones adicionales.
Parameters:
item
- el elemento.
options
- las opciones.
Returns:
la respuesta del elemento de Cosmos.
upsertItem
public CosmosItemResponse upsertItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)
Upserts un elemento de sincronización de Cosmos de elemento al especificar opciones adicionales.
Parameters:
item
- el elemento.
partitionKey
- partitionKey.
options
- las opciones.
Returns:
la respuesta del elemento de Cosmos.
executeBulkOperations
public Iterable> executeBulkOperations(Iterable operations)
Ejecuta la lista de operaciones en masa.
Parameters:
operations
- lista de operaciones que ejecutará este contenedor.
Returns:
Iterable de
CosmosBulkOperationResponse<TContext> la que contiene la operación y es respuesta o excepción.
Para crear una operación que se puede ejecutar aquí, use
CosmosBulkOperations . Por ejemplo,
para una operación upsert
com.azure.cosmos.models.CosmosBulkOperations#getUpsertItemOperation(Object, PartitionKey)
Podemos obtener la operación correspondiente mediante
getOperation() y es la respuesta mediante
getResponse() . Si la operación se ejecutó correctamente, el valor devuelto por
isSuccessStatusCode() será true. Para obtener el estado real, use
getStatusCode() .
Para comprobar si la operación tiene alguna excepción, use
getException() para obtener la excepción.
executeBulkOperations
public Iterable> executeBulkOperations(Iterable operations, CosmosBulkExecutionOptions bulkOptions)
Ejecuta la lista de operaciones en masa.
Parameters:
operations
- lista de operaciones que ejecutará este contenedor.
bulkOptions
- Opciones que se aplican a esta solicitud masiva, que especifica opciones relacionadas con la ejecución, como la simultaneidad, el tamaño del procesamiento por lotes, el intervalo y el contexto.
Returns:
Iterable de
CosmosBulkOperationResponse<TContext> la que contiene la operación y es respuesta o excepción.
Para crear una operación que se puede ejecutar aquí, use
CosmosBulkOperations . Por ejemplo,
para una operación upsert
com.azure.cosmos.models.CosmosBulkOperations#getUpsertItemOperation(Object, PartitionKey)
Podemos obtener la operación correspondiente mediante
getOperation() y es la respuesta mediante
getResponse() . Si la operación se ejecutó correctamente, el valor devuelto por
isSuccessStatusCode() será true. Para obtener el estado real, use
getStatusCode() .
Para comprobar si la operación tiene alguna excepción, use
getException() para obtener la excepción.
delete
public CosmosContainerResponse delete()
Elimina el contenedor de Cosmos actual.
Returns:
la respuesta del contenedor de Cosmos.
delete
public CosmosContainerResponse delete(CosmosContainerRequestOptions options)
Elimina el contenedor de Cosmos actual al especificar opciones adicionales, como If-Match.
Parameters:
options
- las opciones.
Returns:
la respuesta del contenedor de Cosmos.
deleteAllItemsByPartitionKey
public CosmosItemResponse deleteAllItemsByPartitionKey(PartitionKey partitionKey, CosmosItemRequestOptions options)
Elimina todos los elementos del contenedor con el valor partitionKey especificado. Inicia una operación en segundo plano asincrónica de Cosmos DB que elimina todos los elementos del contenedor con el valor especificado. La operación en segundo plano asincrónica de Cosmos DB se ejecuta con un porcentaje de RU de usuario.
Parameters:
partitionKey
- la clave de partición.
options
- las opciones.
Returns:
respuesta del elemento de Cosmos
deleteItem
public CosmosItemResponse deleteItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
Elimina un elemento del contenedor actual.
try {
CosmosItemRequestOptions options = new CosmosItemRequestOptions();
CosmosItemResponse<Object> deleteItemResponse = cosmosContainer.deleteItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
options
);
System.out.println(deleteItemResponse);
} catch (NotFoundException e) {
// catch exception if item not found
System.out.printf("Passenger with item id %s not found\n",
passenger.getId());
} catch (Exception e) {
System.out.println(e.getMessage());
}
Parameters:
itemId
- el identificador del elemento.
partitionKey
- la clave de partición.
options
- las opciones.
Returns:
la respuesta del elemento de Cosmos.
enableGlobalThroughputControlGroup
public void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig)
Habilite el grupo de control de rendimiento con el modo de control global. El límite de rendimiento definido se compartirá entre distintos clientes.
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
- La configuración del grupo de control de rendimiento, consulte GlobalThroughputControlGroup .
enableLocalThroughputControlGroup
public void enableLocalThroughputControlGroup(ThroughputControlGroupConfig groupConfig)
Habilite el grupo de control de rendimiento con el modo de control local.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
container.enableLocalThroughputControlGroup(groupConfig);
Parameters:
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch)
Ejecuta el lote transaccional.
Parameters:
cosmosBatch
- Lote que tiene una lista de operaciones y clave de partición que este contenedor ejecutará.
Returns:
TransactionalBatchResponse que contiene detalles de ejecución del lote transaccional.
Si el lote transaccional se ejecuta correctamente, el valor devuelto por CosmosBatchResponse#getStatusCode en la respuesta devuelta se establecerá en 200}.
Si se produce un error en una operación dentro del lote transaccional durante la ejecución, no se confirmará ningún cambio del lote y el estado de la operación con errores estará disponible por CosmosBatchResponse#getStatusCode o por la excepción. Para obtener información sobre las operaciones con errores en caso de algún error de usuario, como conflicto, no encontrado, etc., se puede enumerar la respuesta.
Esto devuelve CosmosBatchOperationResult instancias correspondientes a cada operación del lote transaccional en el orden en que se agregaron al lote transaccional.
Para obtener un resultado correspondiente a una operación dentro del lote transaccional, use CosmosBatchOperationResult#getStatusCode para acceder al estado de la operación. Si la operación no se ejecutó o se anuló debido al error de otra operación dentro del lote transaccional, el valor de este campo será 424; para la operación que provocó la anulación del lote, el valor de este campo indicará la causa del error.
Si hay problemas como tiempos de espera de solicitud, No disponible, sesión no disponible, error de red o si el servicio devuelve de alguna manera 5xx, se producirá una excepción en lugar de devolver cosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode en la respuesta devuelta para asegurarse de que el lote transaccional se realizó correctamente.
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
Ejecuta el lote transaccional.
Parameters:
cosmosBatch
- Lote que tiene una lista de operaciones y clave de partición que este contenedor ejecutará.
requestOptions
- Opciones que se aplican específicamente a la solicitud por lotes.
Returns:
CosmosBatchResponse que contiene detalles de ejecución del lote transaccional.
Si el lote transaccional se ejecuta correctamente, el valor devuelto por CosmosBatchResponse#getStatusCode en la respuesta devuelta se establecerá en 200}.
Si se produce un error en una operación dentro del lote transaccional durante la ejecución, no se confirmará ningún cambio del lote y el estado de la operación con errores estará disponible por CosmosBatchResponse#getStatusCode o por la excepción. Para obtener información sobre las operaciones con errores en caso de algún error de usuario, como conflicto, no encontrado, etc., se puede enumerar la respuesta.
Esto devuelve CosmosBatchOperationResult instancias correspondientes a cada operación del lote transaccional en el orden en que se agregaron al lote transaccional.
Para obtener un resultado correspondiente a una operación dentro del lote transaccional, use CosmosBatchOperationResult#getStatusCode para acceder al estado de la operación. Si la operación no se ejecutó o se anuló debido al error de otra operación dentro del lote transaccional, el valor de este campo será 424; para la operación que provocó la anulación del lote, el valor de este campo indicará la causa del error.
Si hay problemas como tiempos de espera de solicitud, No disponible, sesión no disponible, error de red o si el servicio devuelve de alguna manera 5xx, se producirá una excepción en lugar de devolver cosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode en la respuesta devuelta para asegurarse de que el lote transaccional se realizó correctamente.
getFeedRanges
public List getFeedRanges()
Obtiene una lista de FeedRange que se puede usar para paralelizar las operaciones de fuente.
List<FeedRange> feedRanges = cosmosContainer.getFeedRanges();
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
Returns:
getId
public String getId()
Obtiene el identificador de contenedor actual.
Returns:
el identificador del contenedor.
getScripts
public CosmosScripts getScripts()
Obtiene los scripts de Cosmos mediante el contenedor actual como contexto.
Returns:
los scripts de sincronización de Cosmos.
openConnectionsAndInitCaches
@Deprecated public void openConnectionsAndInitCaches()
Obsoleto
Inicializa el contenedor al calentar las memorias caché y las conexiones de la región de lectura actual.
NOTA: Lo ideal es llamar a esta API solo una vez durante la inicialización de la aplicación antes de cualquier carga de trabajo.
En el caso de cualquier error transitorio, el autor de la llamada debe consumir el error y continuar con la carga de trabajo normal.
openConnectionsAndInitCaches
@Deprecated public void openConnectionsAndInitCaches(int numProactiveConnectionRegions)
Obsoleto
Inicializa el contenedor al calentar las memorias caché y las conexiones a un no especificado de regiones de conexión proactivas. Para más información sobre las regiones de conexión proactivas, consulte getProactiveConnectionRegionsCount()
NOTA: Lo ideal es llamar a esta API solo una vez durante la inicialización de la aplicación antes de cualquier carga de trabajo.
En el caso de cualquier error transitorio, el autor de la llamada debe consumir el error y continuar con la carga de trabajo normal.
Parameters:
numProactiveConnectionRegions
- el no de regiones a las que conectarse de forma proactiva desde la lista preferida de regiones
read
public CosmosContainerResponse read()
Lee el contenedor actual.
Returns:
la respuesta del contenedor de Cosmos con el contenedor de lectura.
read
public CosmosContainerResponse read(CosmosContainerRequestOptions options)
Lee el contenedor actual mientras especifica opciones adicionales, como If-Match.
Parameters:
options
- las opciones.
Returns:
la respuesta del contenedor de Cosmos.
readThroughput
public ThroughputResponse readThroughput()
Obtiene el rendimiento del contenedor actual.
try {
ThroughputResponse throughputResponse = cosmosContainer.readThroughput();
System.out.println(throughputResponse);
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Returns:
la respuesta de rendimiento.
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties)
Reemplaza las propiedades del contenedor actual.
Parameters:
containerProperties
- las propiedades del contenedor.
Returns:
la respuesta del contenedor de Cosmos.
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)
Reemplaza las propiedades del contenedor actual al especificar opciones adicionales, como If-Match.
Parameters:
containerProperties
- las propiedades del contenedor.
options
- las opciones.
Returns:
la respuesta del contenedor de Cosmos.
replaceThroughput
public ThroughputResponse replaceThroughput(ThroughputProperties throughputProperties)
Establece el rendimiento del contenedor actual.
ThroughputProperties throughputProperties =
ThroughputProperties.createAutoscaledThroughput(1000);
try {
ThroughputResponse throughputResponse =
cosmosContainer.replaceThroughput(throughputProperties);
System.out.println(throughputResponse);
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Parameters:
throughputProperties
- las propiedades de rendimiento (opcional).
Returns:
la respuesta de rendimiento.
Se aplica a