aggregate
Run server-side aggregate queries (sum, average) on a collection.
Overview
The aggregate method performs server-side aggregation for summation and averaging. Like count, it does not retrieve full document data, ensuring performance and cost-efficiency when analyzing metrics across a collection.
Aggregating data
import { db } from 'refirebase';
const stats = await db.firestore.aggregate('orders', {
sum: 'totalAmount',
average: 'totalAmount'
}, {
where: { status: 'completed' }
});
if (!('error' in stats)) {
console.log(`Total Revenue: ${stats.sum}`);
console.log(`Average Order: ${stats.average}`);
} else {
console.error(stats.error);
}
Parameters
| Param | Type | Description |
|---|---|---|
collectionName* | string | The name of the Firestore collection. |
fields* | { sum?: string; average?: string } | Specifies which fields to sum and/or average. |
options | GetByCondition<T> | Optional query filters to apply before aggregating. |
Return value
Returns
Promise<{ sum?: number | null; average?: number | null } | FirestoreError>Returns an object containing the sum and/or average values, or a FirestoreError object if an error occurs.