RefirebaseRefirebase

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

ParamTypeDescription
collectionName*stringThe name of the Firestore collection.
fields*{ sum?: string; average?: string }Specifies which fields to sum and/or average.
optionsGetByCondition<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.