use of org.hypertrace.core.documentstore.Document in project document-store by hypertrace.
the class MongoQueryExecutorIntegrationTest method testFindAll.
@Test
public void testFindAll() throws IOException {
Query query = Query.builder().build();
Iterator<Document> resultDocs = collection.find(query);
assertSizeEqual(resultDocs, "mongo/collection_data.json");
}
use of org.hypertrace.core.documentstore.Document in project document-store by hypertrace.
the class MongoQueryExecutorIntegrationTest method testUnnestAndAggregate.
@Test
public void testUnnestAndAggregate() throws IOException {
org.hypertrace.core.documentstore.query.Query query = org.hypertrace.core.documentstore.query.Query.builder().addSelection(IdentifierExpression.of("sales.medium.type")).addAggregation(IdentifierExpression.of("sales.medium.type")).addSelection(AggregateExpression.of(SUM, IdentifierExpression.of("sales.medium.volume")), "totalSales").addFromClause(UnnestExpression.of(IdentifierExpression.of("sales"), false)).addFromClause(UnnestExpression.of(IdentifierExpression.of("sales.medium"), false)).addSort(IdentifierExpression.of("totalSales"), DESC).build();
Iterator<Document> iterator = collection.aggregate(query);
assertDocsEqual(iterator, "mongo/aggregate_on_nested_array_reponse.json");
}
use of org.hypertrace.core.documentstore.Document in project document-store by hypertrace.
the class MongoQueryExecutorIntegrationTest method testFindWithDuplicateSortingAndPagination.
@Test
public void testFindWithDuplicateSortingAndPagination() throws IOException {
List<SelectionSpec> selectionSpecs = List.of(SelectionSpec.of(IdentifierExpression.of("item")), SelectionSpec.of(IdentifierExpression.of("price")), SelectionSpec.of(IdentifierExpression.of("quantity")), SelectionSpec.of(IdentifierExpression.of("date")));
Selection selection = Selection.builder().selectionSpecs(selectionSpecs).build();
Filter filter = Filter.builder().expression(RelationalExpression.of(IdentifierExpression.of("item"), IN, ConstantExpression.ofStrings(List.of("Mirror", "Comb", "Shampoo", "Bottle")))).build();
Sort sort = Sort.builder().sortingSpec(SortingSpec.of(IdentifierExpression.of("quantity"), DESC)).sortingSpec(SortingSpec.of(IdentifierExpression.of("item"), ASC)).sortingSpec(SortingSpec.of(IdentifierExpression.of("quantity"), DESC)).sortingSpec(SortingSpec.of(IdentifierExpression.of("item"), ASC)).build();
Pagination pagination = Pagination.builder().offset(1).limit(3).build();
Query query = Query.builder().setSelection(selection).setFilter(filter).setSort(sort).setPagination(pagination).build();
Iterator<Document> resultDocs = collection.find(query);
assertDocsEqual(resultDocs, "mongo/filter_with_sorting_and_pagination_response.json");
}
use of org.hypertrace.core.documentstore.Document in project document-store by hypertrace.
the class MongoQueryExecutorIntegrationTest method testAggregateSimple.
@Test
public void testAggregateSimple() throws IOException {
Query query = Query.builder().addSelection(AggregateExpression.of(COUNT, IdentifierExpression.of("item")), "count").build();
Iterator<Document> resultDocs = collection.aggregate(query);
assertDocsEqual(resultDocs, "mongo/count_response.json");
}
use of org.hypertrace.core.documentstore.Document in project document-store by hypertrace.
the class MongoQueryExecutorIntegrationTest method testFindWithNestedFields.
@Test
public void testFindWithNestedFields() throws IOException {
List<SelectionSpec> selectionSpecs = List.of(SelectionSpec.of(IdentifierExpression.of("item")), SelectionSpec.of(IdentifierExpression.of("price")), SelectionSpec.of(IdentifierExpression.of("props.seller.name"), "seller"), SelectionSpec.of(IdentifierExpression.of("props.brand")), SelectionSpec.of(IdentifierExpression.of("props.seller.address.city")));
Query query = Query.builder().addSelections(selectionSpecs).setFilter(LogicalExpression.builder().operand(RelationalExpression.of(IdentifierExpression.of("item"), IN, ConstantExpression.ofStrings(List.of("Mirror", "Comb", "Shampoo")))).operator(OR).operand(RelationalExpression.of(IdentifierExpression.of("props.seller.address.pincode"), EQ, ConstantExpression.of(700007))).build()).addSort(IdentifierExpression.of("props.brand"), ASC).addSort(IdentifierExpression.of("item"), ASC).addSort(IdentifierExpression.of("props.seller.address.city"), ASC).build();
Iterator<Document> resultDocs = collection.find(query);
assertDocsEqual(resultDocs, "mongo/filter_on_nested_fields_response.json");
}
Aggregations