---
title: MongoDB
description: Optional document persistence, BSON conventions, and observation for standalone Arc.
---


Use MongoDB when your Arc application needs document storage. `Cratis.Arc.MongoDB` handles collection injection and BSON conventions while letting you use the MongoDB driver directly. It is optional and does not require Chronicle.

## Start with a read

Follow [getting started](/arc/backend/csharp/mongodb/getting-started/) to install the package, configure a server/database, and activate your host. Keep that page as the canonical setup path rather than copying an incomplete bootstrap.

## Model your documents

- [Concepts](/arc/backend/csharp/mongodb/concepts/): store strongly typed values without wrapper documents.
- [Serializers](/arc/backend/csharp/mongodb/serializers/): understand BSON representations, including date precision and Guid formats.
- [Naming policies](/arc/backend/csharp/mongodb/naming-policies/): choose collection and member names before writing data.
- [Class mapping](/arc/backend/csharp/mongodb/class-mapping/): customize individual document types.
- [Convention packs](/arc/backend/csharp/mongodb/convention-packs/): apply and filter shared conventions.
- [Geospatial types](/arc/backend/csharp/mongodb/geospatial/): store GeoJSON and construct driver query geometry.

## Add live reads and tenancy

- [Observe collections](/arc/backend/csharp/mongodb/observing-collections/): per-collection change streams, lifetime, and errors.
- [Watch multiple collections](/arc/backend/csharp/mongodb/change-stream-watcher/): shared database change streams and joined results.
- [Tenancy](/arc/backend/csharp/mongodb/tenancy/): database naming and scope boundaries.

MongoDB observation is not an event log, and MongoDB persistence does not append Chronicle events. See the separate [Chronicle integration](/arc/backend/csharp/chronicle/) if you intentionally add event sourcing.
