> For the complete documentation index, see [llms.txt](https://codemash.gitbook.io/codemash/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codemash.gitbook.io/codemash/api-reference/database/collections/aggregate.md).

# Aggregate

Database.

**Collections** hold your records. Norbix generates a full CRUD + query API over each collection from its schema, with record-level ownership and triggers.

Runs an aggregation for it.

{% openapi src="/files/LFXChrE9wGFKCxqoL5A1" path="/{version}/database/collections/{collectionName}/aggregate" method="post" %}
[norbix-api-swagger.json](https://712692422-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHy372bqsaex2cqS3ikhL%2Fuploads%2Fgit-blob-b1d87ac242f296adb274a3238bdeaff152c54b4a%2Fnorbix-api-swagger.json?alt=media)
{% endopenapi %}

## Refused operators

A pipeline that contains `$where`, `$function` or `$accumulator` (they run JavaScript on the database server), or `$out` / `$merge` (they write to a collection, while this endpoint only needs read rights), is refused with `CM-ERRORS-DATABASE-031` — one error per operator, at any depth.

## Joined collections

The caller needs `database:read` on the collection **and** on every collection the pipeline joins (`$lookup`, `$graphLookup`, `$unionWith`, nested pipelines, `$facet`): `CM-ERRORS-DATABASE-033` when a read is missing, `CM-ERRORS-DATABASE-032` when a joined name is not a schema in the request's environment, `CM-ERRORS-DATABASE-034` for a join into another database.

## In Cloud

Manage this visually in Cloud — see [Database](/codemash/cloud/database/collections.md).

## Use it from code

Every Norbix SDK exposes this endpoint as a method — see [Aggregate](/codemash/sdks/database/collections/aggregate.md) in the SDK reference, with examples in every language.
