use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class QueriesQuickstart method executeQueryPrintSingleResult.
private void executeQueryPrintSingleResult(String sql) {
logger.info("Execute query {}", sql);
CosmosPagedIterable<Family> filteredFamilies = container.queryItems(sql, new CosmosQueryRequestOptions(), Family.class);
// Print
if (filteredFamilies.iterator().hasNext()) {
Family family = filteredFamilies.iterator().next();
logger.info(String.format("First query result: Family with (/id, partition key) = (%s,%s)", family.getId(), family.getLastName()));
}
logger.info("Done.");
}
use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class QueriesQuickstart method queryWithPagingAndContinuationTokenAndPrintQueryCharge.
private void queryWithPagingAndContinuationTokenAndPrintQueryCharge(CosmosQueryRequestOptions options) throws Exception {
logger.info("Query with paging and continuation token; print the total RU charge of the query");
String query = "SELECT * FROM Families";
// No of docs per page
int pageSize = 100;
int currentPageNumber = 1;
int documentNumber = 0;
String continuationToken = null;
double requestCharge = 0.0;
// Subsequent iterations (continuationToken != null): Receive subsequent batch of query response pages, with continuationToken indicating where the previous iteration left off
do {
logger.info("Receiving a set of query response pages.");
logger.info("Continuation Token: " + continuationToken + "\n");
CosmosQueryRequestOptions queryOptions = new CosmosQueryRequestOptions();
Iterable<FeedResponse<Family>> feedResponseIterator = container.queryItems(query, queryOptions, Family.class).iterableByPage(continuationToken, pageSize);
for (FeedResponse<Family> page : feedResponseIterator) {
logger.info(String.format("Current page number: %d", currentPageNumber));
// Access all of the documents in this result page
for (Family docProps : page.getResults()) {
documentNumber++;
}
// Accumulate the request charge of this page
requestCharge += page.getRequestCharge();
// Page count so far
logger.info(String.format("Total documents received so far: %d", documentNumber));
// Request charge so far
logger.info(String.format("Total request charge so far: %f\n", requestCharge));
// Along with page results, get a continuation token
// which enables the client to "pick up where it left off"
// in accessing query response pages.
continuationToken = page.getContinuationToken();
currentPageNumber++;
}
} while (continuationToken != null);
logger.info(String.format("Total request charge: %f\n", requestCharge));
}
use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleCRUDQuickstart method queryItems.
private void queryItems() {
// <QueryItems>
// Set some common query options
int preferredPageSize = 10;
CosmosQueryRequestOptions queryOptions = new CosmosQueryRequestOptions();
// queryOptions.setEnableCrossPartitionQuery(true); //No longer necessary in SDK v4
// Set populate query metrics to get metrics around query executions
queryOptions.setQueryMetricsEnabled(true);
CosmosPagedIterable<Family> familiesPagedIterable = container.queryItems("SELECT * FROM Family WHERE Family.lastName IN ('Andersen', 'Wakefield', 'Johnson')", queryOptions, Family.class);
familiesPagedIterable.iterableByPage(preferredPageSize).forEach(cosmosItemPropertiesFeedResponse -> {
logger.info("Got a page of query result with " + cosmosItemPropertiesFeedResponse.getResults().size() + " items(s)" + " and request charge of " + cosmosItemPropertiesFeedResponse.getRequestCharge());
logger.info("Item Ids " + cosmosItemPropertiesFeedResponse.getResults().stream().map(Family::getId).collect(Collectors.toList()));
});
// </QueryItems>
}
use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleCRUDQuickstart method getStartedDemo.
// </Main>
private void getStartedDemo() throws Exception {
logger.info("Using Azure Cosmos DB endpoint: " + AccountSettings.HOST);
ArrayList<String> preferredRegions = new ArrayList<String>();
preferredRegions.add("West US");
// Create sync client
// <CreateSyncClient>
client = new CosmosClientBuilder().endpoint(AccountSettings.HOST).key(AccountSettings.MASTER_KEY).preferredRegions(preferredRegions).consistencyLevel(ConsistencyLevel.EVENTUAL).contentResponseOnWriteEnabled(true).buildClient();
// </CreateSyncClient>
createDatabaseIfNotExists();
createContainerIfNotExists();
// Setup family items to create
ArrayList<Family> familiesToCreate = new ArrayList<>();
familiesToCreate.add(Families.getAndersenFamilyItem());
familiesToCreate.add(Families.getWakefieldFamilyItem());
familiesToCreate.add(Families.getJohnsonFamilyItem());
familiesToCreate.add(Families.getSmithFamilyItem());
// Creates several items in the container
// Also applies an upsert operation to one of the items (create if not present, otherwise replace)
createFamilies(familiesToCreate);
logger.info("Reading items.");
readItems(familiesToCreate);
logger.info("Replacing items.");
replaceItems(familiesToCreate);
logger.info("Querying items.");
queryItems();
logger.info("Delete an item.");
deleteItem(familiesToCreate.get(0));
}
use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class CosmosDiagnosticsQuickStartAsync method replaceDocument.
private void replaceDocument() throws Exception {
logger.info("Replace document : {}", documentId);
// Replace existing document with new modified document
Family family = new Family();
family.setLastName(documentLastName);
family.setId(documentId);
// Document modification
family.setDistrict("Columbia");
Mono<CosmosItemResponse<Family>> itemResponseMono = container.replaceItem(family, family.getId(), new PartitionKey(family.getLastName()), new CosmosItemRequestOptions());
CosmosItemResponse<Family> itemResponse = itemResponseMono.block();
CosmosDiagnostics diagnostics = itemResponse.getDiagnostics();
logger.info("Replace item diagnostics : {}", diagnostics);
logger.info("Request charge of replace operation: {} RU", itemResponse.getRequestCharge());
logger.info("Done.");
}
Aggregations