GroupedAs
The GroupedAs
type describes an object returned from calling a Group
function so that the grouped Cell
Id
can be optionally aliased.
{as: (groupedCellId: Id) => void}
Type | Description | |
---|---|---|
as | (groupedCellId: Id) => void | A function that lets you specify an alias for the grouped |
Note that if two Group
clauses are both aliased to the same name (or if you create two groups of the same underlying Cell
, both without aliases), only the latter of two will be used in the query.
Example
This example shows a query that groups the same underlying Cell
twice, for different purposes. Both groups are aliased with the 'as' function to disambiguate them.
import {createQueries, createStore} from 'tinybase';
const store = createStore().setTable('pets', {
fido: {species: 'dog', price: 5},
felix: {species: 'cat', price: 4},
cujo: {species: 'dog', price: 4},
tom: {species: 'cat', price: 3},
});
const queries = createQueries(store);
queries.setQueryDefinition('query', 'pets', ({select, group}) => {
select('pets', 'species');
select('pets', 'price');
group('price', 'min').as('minPrice');
group('price', 'max').as('maxPrice');
});
queries.forEachResultRow('query', (rowId) => {
console.log({[rowId]: queries.getResultRow('query', rowId)});
});
// -> {0: {species: 'dog', minPrice: 4, maxPrice: 5}}
// -> {1: {species: 'cat', minPrice: 3, maxPrice: 4}}
Since
v2.0.0