Required access
Use a dedicated writer scoped to the destination database:Connection fields
The complete URI is encrypted as one secret and masked after saving. URI query
options such as
authSource, replicaSet, and tls=true are passed to
PyMongo.
Create the connection
- Open Connections.
- Click + New Connection.
- Set the role to Destination.
- Choose MongoDB.
- Enter the complete URI and destination database.
- Click Test Connection.
- Save after the test succeeds.
Prepare the collection
Create the collection before the first run. Arcyria never creates or drops collections, and a run whose target collection does not exist stops before reading the source, with the command to create it:Configure delivery
- Open Destinations and click Add destination.
- Choose the MongoDB connection and target database.
- Open Transformations, select the MongoDB destination, and create the SQL model.
- Save, validate, preview, and publish the revision.
- Set the published output target to
database.collection, such asanalytics.orders. - Select one or more stable, non-null Upsert keys.
- Save the destination and run the pipeline.
Write behavior
The public MongoDB destination uses Upsert. Every output row must contain a non-null value for each selected merge key. Matching documents are updated; new documents are inserted._idis the default stable key for MongoDB-to-MongoDB pipelines.- A business identifier such as
external_idcan be used for SQL sources. - Internal fields whose names begin with
_dltare never written. - A rerun with the same keys updates existing documents instead of duplicating them.
Deletes
When the source stream reports deletes (CDC, or delete detection on an Incremental stream), Arcyria deletes the matching documents from the collection:- Only when the collection’s Upsert key is the same as the source key. Otherwise deletes are skipped and the run records why.
- Keys are converted the same way as upserted values, so a delete matches the document the upsert wrote. If the stored key type differs, the run warns.
- Deleting a document that is already gone is not an error, so a retried run gives the same result.
- Hard delete only. Soft delete is skipped with a warning, because it would add fields your model does not output.
- Truncate the destination removes every document from the target collection. The collection, its indexes, and its validator stay; other collections are never touched.
- Without an index on the Upsert key, deletes scan the collection. Arcyria warns when it cannot find a supporting index.
Document limits and BSON mapping
Documents are BSON-encoded before network I/O. A document exceeding MongoDB’s 16 MiB limit is rejected with the collection and a bounded record identifier. Common SQL values map to BSON-safe strings, numbers, decimals, dates, binary values, arrays, and nested documents.Verify delivery
Current limitations
- REPLACE and Change Streams are disabled.
- Atlas, replica-set, sharded-cluster, and live TLS destination certification remains incomplete.
- PostgreSQL-to-MongoDB and MongoDB-to-MongoDB have automated evidence. MySQL, ClickHouse, and manual UI pairings remain pending owner validation.
- DuckDB connections are Coming Soon and cannot be selected for new pipelines.
Troubleshooting
See MongoDB source and the
MongoDB and PostgreSQL verified paths.

