> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DocumentDB (MongoDB)

> DocumentDB (MongoDB) APIs with Cloud Adapter.

This page describes how DocumentDB (MongoDB) maps to services in the environment where the application runs, including backend choices, supported operations and service-specific behavior.

## Supported environments

* Akamai
* Azure
* DigitalOcean
* Google Cloud
* OCI
* Private Kubernetes
* Scaleway

Check the operation and capability tables for the behavior your application depends on. A supported environment does not imply that every operation of the origin service is available.

## How the backends compare

Each row compares a capability of DocumentDB (MongoDB) with its adaptation on each backend.
A dash means this profile does not state the capability for that backend.

### Cloud Adapter

#### Runtime surface

| Capability | DocumentDB (MongoDB) | Akamai, Azure, Google Cloud, OCI, Private Kubernetes, and Scaleway · Percona MongoDB | Akamai, Azure, DigitalOcean, Google Cloud, OCI, Private Kubernetes, and Scaleway · MongoDB Atlas | Azure · Azure Cosmos DB for MongoDB (vCore) | Google Cloud · Firestore (MongoDB compatibility) | OCI · Oracle Autonomous JSON Database (MongoDB API) | Scaleway · Scaleway Managed MongoDB |
| - | - | - | - | - | - | - | - |
| Multi-document transactions | Yes - retryable writes from 8.0.2; earlier versions require retryWrites=false; transaction retries are a separate capability | Yes - native replica-set transactions; select write concern and retry policy explicitly | Yes - full ACID, cross-shard, retryable | Partial - capped at a 30-second transaction lifetime | Yes | Yes | Yes - full ACID with retryable writes, across the replica set |
| Change streams | Yes | Yes - native replica-set streams; oplog retention bounds resumption | - | - | - | - | - |
| Correlated \$lookup | Partial - 8.0.2+ supports correlated subqueries with restrictions on stages referencing let variables; earlier versions do not | Yes | Yes | No - no let / pipeline form | Yes | Partial - restricted (localField cannot be an array or missing) | Yes |
| \$graphLookup | Yes - supported in DocumentDB 8.0; not supported in 3.6, 4.0 or 5.0 | Yes | Yes | Yes | No | No | Yes |
| Text search | Yes | Yes - native MongoDB text indexes; query and indexing semantics differ | - | - | - | - | - |
| Vector search | Yes | No - not provided by the MongoDB 8.0 baseline; Percona Search on newer engines is a separate component | - | - | - | - | - |
| Capped collections | No | Yes - native bounded collections; native time-series collections are a separate schema choice | - | - | - | - | - |
| Server-side JS / mapReduce | Partial | Yes - supported but deprecated; server-side JavaScript can be disabled | - | - | - | - | - |
| Collation | Yes | Yes | - | - | - | - | - |
| Where your data sits | AWS DocumentDB cluster | configured persistent-volume storage; physical location depends on the StorageClass/CSI backend; backup storage is configured separately | - | - | - | - | - |
| API coverage | full | high | full | high | partial | partial | full |
| Where your data actually sits · NOT in your own cloud account | your AWS account, in the region you chose | - | MongoDB's Atlas estate, operated by MongoDB Inc. | - | - | - | - |
| Change streams | Yes - 5.0+: primary or secondary nodes | - | Yes | Yes | Partial - preview | Partial - 26ai beta, not for production | Yes |
| Text search | Yes - since 5.0; English-only, case-insensitive, one text index / collection | - | Yes | Partial - one text index per collection, no regex / CJK | Yes | Yes - no collation with it | Yes - MongoDB text indexes, multi-language |
| Vector search | Yes - HNSW / IVFFlat indexes, up to 2,000 dimensions (5.0+) | - | Yes - Atlas Vector Search | Yes - IVF / HNSW / DiskANN, up to 16,000 dimensions | No | Partial - \$vectorSearch, Beta preview (26ai) | No - \$vectorSearch is an Atlas feature, not a MongoDB 8.0 engine feature - the one dimension where this backend is BEHIND the origin |
| Capped / time-series collections | No | - | Yes | No | No | No | Yes |
| Server-side JS / mapReduce | Partial - mapReduce supported in 8.0; \$where / \$accumulator not supported; published AWS matrix does not establish \$function support | - | Yes - supported but deprecated (mapReduce since 5.0; server-side JS in 8.0) | No | No | No | Yes - supported but deprecated (mapReduce since 5.0; server-side JS in 8.0) |
| Collation | Yes - new in 8.0 | - | Yes | Partial - many operators; no general case-insensitive index | No | No | Yes |
| There is ONE endpoint, so reads are not routed to a replica · the operational headline | a writer endpoint and a separate reader endpoint | - | - | - | - | - | one endpoint that both resolve to |
| The cluster / instance split folds into one resource · a different topology model | aws\_docdb\_cluster plus separate aws\_docdb\_cluster\_instance resources | - | - | - | - | - | one scaleway\_mongodb\_instance with a node count |
| Every node type is beta, and one is low on stock · which is why the default is the smallest | your DocumentDB instance class | - | - | - | - | - | mgdb-play2-nano (2 vCPU) |
| DocumentDB's compatibility version has no counterpart · and that is fine | DocumentDB compatibility 3.6 / 4.0 / 5.0 | - | - | - | - | - | MongoDB 8.0 (EOL 2029-10-31) |

#### Limits

| Capability | DocumentDB (MongoDB) | Akamai, Azure, Google Cloud, OCI, Private Kubernetes, and Scaleway · Percona MongoDB | Akamai, Azure, DigitalOcean, Google Cloud, OCI, Private Kubernetes, and Scaleway · MongoDB Atlas | Azure · Azure Cosmos DB for MongoDB (vCore) | Google Cloud · Firestore (MongoDB compatibility) | OCI · Oracle Autonomous JSON Database (MongoDB API) | Scaleway · Scaleway Managed MongoDB |
| - | - | - | - | - | - | - | - |
| Maximum storage · cluster volume vs per node | 128 TiB | - | 14 TB / node | - | - | - | - |
| vCPU range · smallest to largest instance | 2-192 | - | 2-96 | - | serverless | ECPU-based (2+, 3× auto-scale) | - |
| Memory range · smallest to largest instance | 4-1,536 GiB | - | 2-768 GiB | - | serverless | auto (per ECPU) | - |
| Storage autoscaling | Yes | - | Yes - compute-tier auto-scaling too | Partial - storage scales up on demand, but not automatically | Yes - serverless: storage and throughput scale automatically | Yes - compute and storage auto-scale up to 3× | - |
| Maximum storage · cluster volume vs per shard | 128 TiB | - | - | 32 TiB / shard | - | - | - |
| vCPU range · smallest to largest, per shard | 2-192 | - | - | 1-64 | - | - | - |
| Memory range · smallest to largest, per shard | 4-1,536 GiB | - | - | 2-256 GiB | - | - | - |
| Maximum storage | 128 TiB | - | - | - | serverless (auto) | - | - |
| Maximum storage · cluster volume vs Autonomous DB max | 128 TiB | - | - | - | - | 384 TB | - |
| vCPU range · smallest to largest node type | 2-192 | - | - | - | - | - | 2-64 |
| Memory range · smallest to largest node type | 4-1,536 GiB | - | - | - | - | - | up to 256 GB |

## On Akamai, Azure, Google Cloud, OCI, Private Kubernetes, and Scaleway

### Percona MongoDB

| Operation | Area | Support | Depth | Notes |
| - | - | - | - | - |
| hello / ping / dbStats / collStats / explain | Admin & diagnostics | Supported | Most usage | - |
| find / insert / update / delete | CRUD | Supported | Common | - |
| Change streams (\$changeStream / watch) | Change streams | Supported | Most usage | replica-set change streams; resumption requires the necessary history to remain in the oplog |
| create / drop / listCollections / listDatabases | Collections & databases | Supported | Most usage | - |
| createIndexes / dropIndexes / listIndexes | Indexes | Supported | Most usage | - |
| DocumentDB vector-search queries | Query & aggregation | Out of scope | Full surface | the MongoDB 8.0 baseline has no native vector-search engine; newer Percona Search requires a separate deployment and query design |
| aggregate / count / distinct | Query & aggregation | Supported | Common | MongoDB semantics; validate DocumentDB-specific query and index behavior when migrating |
| Transactions (session.startTransaction / commitTransaction / abortTransaction) | Transactions | Supported | Most usage | startTransaction is a driver/session operation; commitTransaction and abortTransaction are wire commands; behavior follows the selected MongoDB version |

#### Document queries on Kubernetes

Percona Server for MongoDB runs the database on the target Kubernetes cluster. The Percona Operator reconciles its database resources; applications send MongoDB requests directly to the database. Configure the driver connection, credentials, TLS and reachable replica-set addresses for that deployment. The DocumentDB cluster-management API and the native database connection are separate interfaces. Use the operator's Kubernetes resources for database administration.

[Percona Server for MongoDB](https://docs.percona.com/percona-server-for-mongodb/8.0/index.html) and [Operator 1.22 documentation](https://docs.percona.com/legacy-documentation/percona-operator-for-mongodb/PerconaOperatorMongoDB-1.22.0.pdf).

#### MongoDB compatibility and version differences

The target baseline is Operator 1.22 with MongoDB 8.0. Source behavior depends on the DocumentDB engine version: graphLookup is supported in 8.0, while correlated lookup is supported from 8.0.2 with restrictions on stages referencing let variables. Earlier versions lack the corresponding capability. Percona executes native MongoDB correlated lookup and graph traversal. Capped collections retain a bounded set of documents; time-series collections organize measurements. These native collection designs require deliberate schema choices rather than an automatic conversion.

Both engines support text indexes, with different indexing and language behavior. DocumentDB 8.0 adds collation and mapReduce; MongoDB 8.0 also supports collation and server-side JavaScript, but JavaScript and mapReduce are deprecated. Review locale-sensitive queries and keep unnecessary server-side scripting disabled.

DocumentDB promotes transaction read concern to snapshot and write concern to majority. MongoDB replica-set transactions use the configured concerns; choose them and test retry handling. DocumentDB change streams must be enabled and retain a configured history window. MongoDB streams follow its replica-set oplog, so oplog capacity determines how far a consumer can resume.

[DocumentDB differences](https://docs.aws.amazon.com/documentdb/latest/devguide/functional-differences.html) and [API support](https://docs.aws.amazon.com/documentdb/latest/devguide/mongo-apis.html), [transactions](https://docs.aws.amazon.com/documentdb/latest/devguide/transactions.html), [change streams](https://docs.aws.amazon.com/documentdb/latest/devguide/change_streams.html), and the [MongoDB manual](https://www.mongodb.com/docs/v8.0/).

#### Limitations

**Vector search differs.** The MongoDB 8.0 baseline has no native vector-search engine. Percona Search adds vector and full-text search on newer engines through a separate mongot process. Its availability does not make DocumentDB vector queries or index definitions interchangeable.

**Database management uses a different interface.** DocumentDB cluster-management requests, AWS snapshot identifiers and parameter groups are not Percona Operator resources. Use native operator administration and backup tools for this mapping; application wire compatibility does not establish AWS management-API compatibility.

[Percona Search](https://docs.percona.com/percona-search-for-mongodb/overview-search.html).

#### Other considerations

**Operations and recovery.** Assign an operating owner for database capacity, persistent storage, failure placement, monitoring, upgrades and recovery under the installation agreement. The Kubernetes operator automates database tasks; it does not assign those responsibilities or supply AWS-managed storage durability or an AWS service availability commitment. Configure Percona Backup for MongoDB and backup storage separately. Point-in-time recovery requires a full backup and retained oplog; rehearse a restore and verify the recovered application. Assign support ticket ownership, incident coordination and escalation separately from the backend operating owner; the installation agreement determines those responsibilities.

**Data migration.** Provision the target before loading data. Rehearse a logical dump and restore, stop application writes for the final transfer, then compare document counts, indexes and representative query results. Switch the connection only after validating the target. Recreate users and connection security for the new deployment, and retain a rollback plan that accounts for writes after cutover.

[Operator 1.22 recovery guidance](https://docs.percona.com/legacy-documentation/percona-operator-for-mongodb/PerconaOperatorMongoDB-1.22.0.pdf) and [DocumentDB export tools](https://docs.aws.amazon.com/documentdb/latest/devguide/backup_restore-dump_restore_import_export_data.html).

## On Akamai, Azure, DigitalOcean, Google Cloud, OCI, Private Kubernetes, and Scaleway

### MongoDB Atlas

| Operation | Area | Support | Depth | Notes |
| - | - | - | - | - |
| collStats | Admin & diagnostics | Supported | Full surface | - |
| dbStats | Admin & diagnostics | Supported | Full surface | - |
| explain | Admin & diagnostics | Supported | Full surface | query plan |
| hello | Admin & diagnostics | Supported | Full surface | topology + health handshake |
| isMaster | Admin & diagnostics | Supported | Full surface | legacy topology handshake |
| ping | Admin & diagnostics | Supported | Full surface | - |
| serverStatus | Admin & diagnostics | Supported | Full surface | - |
| delete | CRUD | Supported | Common | - |
| find | CRUD | Supported | Common | - |
| findAndModify | CRUD | Supported | Common | atomic read-modify-write |
| getMore | CRUD | Supported | Common | cursor iteration |
| insert | CRUD | Supported | Common | - |
| killCursors | CRUD | Supported | Most usage | - |
| update | CRUD | Supported | Common | - |
| Change streams (\$changeStream / watch) | Change streams | Supported | Most usage | primary or secondary nodes |
| collMod | Collections & databases | Supported | Full surface | - |
| create | Collections & databases | Supported | Most usage | create collection, incl. capped / time-series which DocumentDB lacks |
| drop | Collections & databases | Supported | Most usage | - |
| dropDatabase | Collections & databases | Supported | Full surface | - |
| listCollections | Collections & databases | Supported | Most usage | - |
| listDatabases | Collections & databases | Supported | Most usage | - |
| renameCollection | Collections & databases | Supported | Full surface | - |
| createIndexes | Indexes | Supported | Most usage | - |
| dropIndexes | Indexes | Supported | Most usage | - |
| listIndexes | Indexes | Supported | Most usage | - |
| aggregate | Query & aggregation | Supported | Common | native MongoDB aggregation; DocumentDB supports \$graphLookup from 8.0 and restricted correlated \$lookup from 8.0.2 |
| count | Query & aggregation | Supported | Common | - |
| distinct | Query & aggregation | Supported | Most usage | - |
| mapReduce | Query & aggregation | Supported | Full surface | - |
| Transactions (startTransaction / commit / abort) | Transactions | Supported | Most usage | full ACID, cross-shard, retryable; DocumentDB caps this |

#### How it works

Your application's MongoDB driver connects directly to MongoDB Atlas. These database requests are the **data plane**. The driver and the MongoDB wire protocol stay the same, and Tensor9 does not proxy or translate them.

Management requests, such as snapshots, restores, replicas, failover and configuration changes, are the **control plane**. Tensor9 runs the DocumentDB API in the customer's Cloud Adapter deployment and translates each of these requests to the backend's management API. The sections below list which operations work and which return an error.

![Database requests (MongoDB wire protocol) connect directly to MongoDB Atlas. The Tensor9 service adapter translates DocumentDB API management calls to Atlas Admin API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIE1vbmdvREIgQXRsYXMuIFRoZSBUZW5zb3I5IHNlcnZpY2UgYWRhcHRlciB0cmFuc2xhdGVzIERvY3VtZW50REIgQVBJIG1hbmFnZW1lbnQgY2FsbHMgdG8gQXRsYXMgQWRtaW4gQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtbW9uZ29kYi1hdGxhcyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBzdHlsZT0iZmlsbDojOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIgc3R5bGU9ImZpbGw6I2Y4ZmFmYztzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSIyNiIgeT0iNTQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPk9OIE1PTkdPREIgQVRMQVM8L3RleHQ+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1tb25nb2RiLWF0bGFzKSIgc3R5bGU9InN0cm9rZTojMDQ3ODU3Ii8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZmlsbDojMDQ3ODU3Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz48c3ZnIHg9Ijc4NiIgeT0iNTYiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+PGNpcmNsZSBjeD0iNTEyIiBjeT0iNTEyIiByPSI1MTIiIHN0eWxlPSJmaWxsOiMxM2FhNTIiLz4gPHBhdGggZD0iTTY0OC44NiA0NDkuNDRjLTMyLjM0LTE0Mi43My0xMDguNzctMTg5LjY2LTExNy0yMDcuNTktOS0xMi42NS0xOC4xMi0zNS4xNS0xOC4xMi0zNS4xNS0uMTUtLjM4LS4zOS0xLjA1LS42Ny0xLjctLjkzIDEyLjY1LTEuNDEgMTcuNTMtMTMuMzcgMzAuMjktMTguNTIgMTQuNDgtMTEzLjU0IDk0LjIxLTEyMS4yNyAyNTYuMzctNy4yMSAxNTEuMjQgMTA5LjI1IDI0MS4zNiAxMjUgMjUyLjg1bDEuNzkgMS4yN3YtLjExYy4xLjc2IDUgMzYgOC40NCA3My4zNEg1MjZhNzI2LjY4IDcyNi42OCAwIDAgMSAxMy03OC41M2wxLS42NWEyMDQuNDggMjA0LjQ4IDAgMCAwIDIwLjExLTE2LjQ1bC43Mi0uNjVjMzMuNDgtMzAuOTMgOTMuNjctMTAyLjQ3IDkzLjA4LTIxNi41M2EzNDcuMDcgMzQ3LjA3IDAgMCAwLTUuMDUtNTYuNzZ6TTUxMi4zNSA2NTkuMTJzMC0yMTIuMTIgNy0yMTIuMDhjNS40NiAwIDEyLjUzIDI3My42MSAxMi41MyAyNzMuNjEtOS43Mi0xLjE3LTE5LjUzLTQ1LjAzLTE5LjUzLTYxLjUzeiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Nb25nb0RCIEF0bGFzPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjEyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPk1vbmdvREIgZW5naW5lPC90ZXh0Pgo8dGV4dCB4PSIyMDAiIHk9IjE1OCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjgiPk1BTkFHRU1FTlQgUkVRVUVTVFMgwrcgVklBIFRFTlNPUjk8L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxOTYiIHgyPSIzMDAiIHkyPSIxOTYiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtbW9uZ29kYi1hdGxhcykiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNyIgc3R5bGU9ImZpbGw6I2VjZmRmNTtzdHJva2U6IzA0Nzg1NyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtbW9uZ29kYi1hdGxhcykiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8cmVjdCB4PSI2MTQiIHk9IjE2NCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSI3MTIiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMS41cHgiPkF0bGFzIEFkbWluIEFQSTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50aGUgYmFja2VuZCdzIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8L3N2Zz4=)

![Database requests (MongoDB wire protocol) connect directly to MongoDB Atlas. The Tensor9 service adapter translates DocumentDB API management calls to Atlas Admin API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIE1vbmdvREIgQXRsYXMuIFRoZSBUZW5zb3I5IHNlcnZpY2UgYWRhcHRlciB0cmFuc2xhdGVzIERvY3VtZW50REIgQVBJIG1hbmFnZW1lbnQgY2FsbHMgdG8gQXRsYXMgQWRtaW4gQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtbW9uZ29kYi1hdGxhcyIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBzdHlsZT0iZmlsbDojNjQ3NDhiIi8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIgc3R5bGU9ImZpbGw6IzBmMTcyYTtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSIyNiIgeT0iNTQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjNjQ3NDhiOyBmaWxsOiM2ZWU3YjciPk9OIE1PTkdPREIgQVRMQVM8L3RleHQ+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3YjciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzZlZTdiNyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1tb25nb2RiLWF0bGFzKSIgc3R5bGU9InN0cm9rZTojNmVlN2I3Ii8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzk0YTNiODsgZmlsbDojNmVlN2I3Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz48c3ZnIHg9Ijc4NiIgeT0iNTYiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+PGNpcmNsZSBjeD0iNTEyIiBjeT0iNTEyIiByPSI1MTIiIHN0eWxlPSJmaWxsOiMxM2FhNTIiLz4gPHBhdGggZD0iTTY0OC44NiA0NDkuNDRjLTMyLjM0LTE0Mi43My0xMDguNzctMTg5LjY2LTExNy0yMDcuNTktOS0xMi42NS0xOC4xMi0zNS4xNS0xOC4xMi0zNS4xNS0uMTUtLjM4LS4zOS0xLjA1LS42Ny0xLjctLjkzIDEyLjY1LTEuNDEgMTcuNTMtMTMuMzcgMzAuMjktMTguNTIgMTQuNDgtMTEzLjU0IDk0LjIxLTEyMS4yNyAyNTYuMzctNy4yMSAxNTEuMjQgMTA5LjI1IDI0MS4zNiAxMjUgMjUyLjg1bDEuNzkgMS4yN3YtLjExYy4xLjc2IDUgMzYgOC40NCA3My4zNEg1MjZhNzI2LjY4IDcyNi42OCAwIDAgMSAxMy03OC41M2wxLS42NWEyMDQuNDggMjA0LjQ4IDAgMCAwIDIwLjExLTE2LjQ1bC43Mi0uNjVjMzMuNDgtMzAuOTMgOTMuNjctMTAyLjQ3IDkzLjA4LTIxNi41M2EzNDcuMDcgMzQ3LjA3IDAgMCAwLTUuMDUtNTYuNzZ6TTUxMi4zNSA2NTkuMTJzMC0yMTIuMTIgNy0yMTIuMDhjNS40NiAwIDEyLjUzIDI3My42MSAxMi41MyAyNzMuNjEtOS43Mi0xLjE3LTE5LjUzLTQ1LjAzLTE5LjUzLTYxLjUzeiIgc3R5bGU9ImZpbGw6I2ZmZiIvPjwvc3ZnPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxMnB4Ij5Nb25nb0RCIEF0bGFzPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjEyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPk1vbmdvREIgZW5naW5lPC90ZXh0Pgo8dGV4dCB4PSIyMDAiIHk9IjE1OCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM2NDc0OGIiPk1BTkFHRU1FTlQgUkVRVUVTVFMgwrcgVklBIFRFTlNPUjk8L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxOTYiIHgyPSIzMDAiIHkyPSIxOTYiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtbW9uZ29kYi1hdGxhcykiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM5NGEzYjgiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNyIgc3R5bGU9ImZpbGw6IzA2NGUzYjtzdHJva2U6IzZlZTdiNyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3Yjc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNmVlN2I3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtbW9uZ29kYi1hdGxhcykiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8cmVjdCB4PSI2MTQiIHk9IjE2NCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6IzFlMjkzYjtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSI3MTIiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxMS41cHgiPkF0bGFzIEFkbWluIEFQSTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIyMTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij50aGUgYmFja2VuZCdzIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8L3N2Zz4=)

Queries reach the database directly; only the management calls are translated.

#### Database connections

MongoDB Atlas runs MongoDB itself. It supports multi-document transactions, change streams, correlated lookups and collation, with behavior and limits that follow the selected MongoDB version and Atlas tier. Your driver connects directly to Atlas, where your queries and indexes run.

Each backend implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and tools keep making the same DocumentDB calls: describe the cluster, take a snapshot, restore to a point in time, add replica instances, pause and resume, change the tier or a parameter. For each supported operation, the adapter accepts the DocumentDB request, returns the DocumentDB response format, and performs the operation through the Atlas Admin API: snapshots and continuous-backup point-in-time restore, replica node layout, cluster pause / resume, and tier and storage changes. DocumentDB's global-cluster calls map to replica placement across Atlas regions. Atlas also offers geographic sharding, which splits data by location and is a separate deployment choice.

When your product is deployed into the target environment, Tensor9 compiles the cluster your stack already declares into the matching MongoDB Atlas resources and puts the connection string and credentials in your application's configuration. The adapter then handles the management calls your running system makes.

![The Tensor9 service adapter handles DocumentDB management requests using Atlas Admin API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXRsYXMgQWRtaW4gQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgc3R5bGU9ImZpbGw6Izk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSIxMzQiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEyLjVweCI+RG9jdW1lbnREQiBtYW5hZ2VtZW50IGNhbGw8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5zbmFwc2hvdCDCtyBwb2ludC1pbi10aW1lIHJlc3RvcmU8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXBsaWNhIMK3IGZhaWxvdmVyIMK3IGdsb2JhbCBjbHVzdGVyPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnN0b3AgLyBzdGFydCDCtyBwYXJhbWV0ZXJzPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPnNhbWUgcmVxdWVzdCAvIHJlc3BvbnNlIHNoYXBlczwvdGV4dD4KPGxpbmUgeDE9IjI1MiIgeTE9Ijc0IiB4Mj0iMzE0IiB5Mj0iNzQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF0bGFzLWFkbWluLWFwaSkiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8cmVjdCB4PSIzMTgiIHk9IjU0IiB3aWR0aD0iMjA0IiBoZWlnaHQ9Ijg4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS43IiBzdHlsZT0iZmlsbDojZWNmZGY1O3N0cm9rZTojMDQ3ODU3Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSI0MjAiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF0bGFzLWFkbWluLWFwaSkiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXRsYXMtYWRtaW4tYXBpKSIgc3R5bGU9InN0cm9rZTojOTRhM2I4Ii8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojY2JkNWUxIi8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+QXRsYXMgQWRtaW4gQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+YmFja3VwcyDCtyBub2RlIGxheW91dCDCtyBwYXVzZTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5tdWx0aS1yZWdpb24gY2x1c3RlcnM8L3RleHQ+Cjwvc3ZnPg==)

![The Tensor9 service adapter handles DocumentDB management requests using Atlas Admin API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXRsYXMgQWRtaW4gQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgc3R5bGU9ImZpbGw6IzY0NzQ4YiIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6IzFlMjkzYjtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSIxMzQiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2YxZjVmOTsgZm9udC1zaXplOjEyLjVweCI+RG9jdW1lbnREQiBtYW5hZ2VtZW50IGNhbGw8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5zbmFwc2hvdCDCtyBwb2ludC1pbi10aW1lIHJlc3RvcmU8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5yZXBsaWNhIMK3IGZhaWxvdmVyIMK3IGdsb2JhbCBjbHVzdGVyPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnN0b3AgLyBzdGFydCDCtyBwYXJhbWV0ZXJzPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM5NGEzYjgiPnNhbWUgcmVxdWVzdCAvIHJlc3BvbnNlIHNoYXBlczwvdGV4dD4KPGxpbmUgeDE9IjI1MiIgeTE9Ijc0IiB4Mj0iMzE0IiB5Mj0iNzQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1hdGxhcy1hZG1pbi1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF0bGFzLWFkbWluLWFwaSkiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8cmVjdCB4PSIzMTgiIHk9IjU0IiB3aWR0aD0iMjA0IiBoZWlnaHQ9Ijg4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS43IiBzdHlsZT0iZmlsbDojMDY0ZTNiO3N0cm9rZTojNmVlN2I3Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNmVlN2I3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSI0MjAiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzZlZTdiNyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF0bGFzLWFkbWluLWFwaSkiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXRsYXMtYWRtaW4tYXBpKSIgc3R5bGU9InN0cm9rZTojNjQ3NDhiIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojMWUyOTNiO3N0cm9rZTojNDc1NTY5Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjZjFmNWY5OyBmb250LXNpemU6MTJweCI+QXRsYXMgQWRtaW4gQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzk0YTNiOCI+YmFja3VwcyDCtyBub2RlIGxheW91dCDCtyBwYXVzZTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5tdWx0aS1yZWdpb24gY2x1c3RlcnM8L3RleHQ+Cjwvc3ZnPg==)

Tensor9 translates DocumentDB management requests to the backend API and returns DocumentDB responses.

#### Limitations

Where DocumentDB and MongoDB Atlas differ

* **Manual failover behaves differently: it runs an Atlas failover test.** Atlas elects a new primary automatically. The manual failover call maps to Atlas's test-failover, which is meant for checking resilience rather than day-to-day operations.
* **Event subscriptions are not supported.** DocumentDB event notifications publish to SNS. Atlas alerts work differently and have no direct equivalent.
* **DocumentDB-specific parameters are not supported.** Standard cluster parameters map to Atlas cluster configuration; parameters specific to DocumentDB have no equivalent on the backend.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the backend supports. Check the workload's queries, indexes and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Atlas organization. Cluster tiers, cloud and region choices, and pricing are MongoDB's.

**Features and capacity.** The comparison table on this page lists feature and high-availability differences. Check the backend's pricing and capacity limits when you size the deployment.

## On Azure

### Azure Cosmos DB for MongoDB (vCore)

| Operation | Area | Support | Depth | Notes |
| - | - | - | - | - |
| collStats | Admin & diagnostics | Supported | Full surface | - |
| dbStats | Admin & diagnostics | Supported | Full surface | - |
| explain | Admin & diagnostics | Supported | Full surface | query plan |
| hello | Admin & diagnostics | Supported | Full surface | topology handshake |
| isMaster | Admin & diagnostics | Supported | Full surface | legacy topology handshake |
| ping | Admin & diagnostics | Supported | Full surface | - |
| serverStatus | Admin & diagnostics | Supported | Full surface | - |
| delete | CRUD | Supported | Common | - |
| find | CRUD | Supported | Common | - |
| findAndModify | CRUD | Supported | Common | atomic read-modify-write |
| getMore | CRUD | Supported | Common | cursor iteration |
| insert | CRUD | Supported | Common | - |
| killCursors | CRUD | Supported | Most usage | - |
| update | CRUD | Supported | Common | - |
| Change streams (\$changeStream / watch) | Change streams | Supported | Most usage | - |
| collMod | Collections & databases | Supported | Full surface | - |
| create | Collections & databases | Partial | Most usage | collections yes; capped collections not supported |
| drop | Collections & databases | Supported | Most usage | - |
| dropDatabase | Collections & databases | Supported | Full surface | - |
| listCollections | Collections & databases | Supported | Most usage | - |
| listDatabases | Collections & databases | Supported | Most usage | - |
| renameCollection | Collections & databases | Supported | Full surface | - |
| createIndexes | Indexes | Supported | Most usage | - |
| dropIndexes | Indexes | Supported | Most usage | - |
| listIndexes | Indexes | Supported | Most usage | - |
| aggregate | Query & aggregation | Supported | Common | supports \$graphLookup and its aggregation subset; DocumentDB also supports \$graphLookup in 8.0 |
| count | Query & aggregation | Supported | Common | - |
| distinct | Query & aggregation | Supported | Most usage | - |
| mapReduce | Query & aggregation | Out of scope | Full surface | not offered on Cosmos vCore |
| Transactions (startTransaction / commit / abort) | Transactions | Partial | Most usage | multi-document ACID, capped at 30 seconds |

#### How it works

Your application's MongoDB driver connects directly to Azure Cosmos DB for MongoDB (vCore). These database requests are the **data plane**. The driver and the MongoDB wire protocol stay the same, and Tensor9 does not proxy or translate them.

Management requests, such as snapshots, restores, replicas, failover and configuration changes, are the **control plane**. Tensor9 runs the DocumentDB API in the customer's Cloud Adapter deployment and translates each of these requests to the backend's management API. The sections below list which operations work and which return an error.

![Database requests (MongoDB wire protocol) connect directly to Cosmos DB (vCore). The Tensor9 service adapter translates DocumentDB API management calls to Azure management API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIENvc21vcyBEQiAodkNvcmUpLiBUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgdHJhbnNsYXRlcyBEb2N1bWVudERCIEFQSSBtYW5hZ2VtZW50IGNhbGxzIHRvIEF6dXJlIG1hbmFnZW1lbnQgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtY29zbW9zLWRiLXZjb3JlIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIHN0eWxlPSJmaWxsOiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjgiIHk9IjM0IiB3aWR0aD0iODIwIiBoZWlnaHQ9IjIwNiIgcng9IjE2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1IiBzdHlsZT0iZmlsbDojZjhmYWZjO3N0cm9rZTojY2JkNWUxIi8+Cjx0ZXh0IHg9IjI2IiB5PSI1NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+T04gQVpVUkU8L3RleHQ+PHN2ZyB4PSI3OTIiIHk9IjM2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgZmlsbD0ibm9uZSI+PGcgZmlsbD0iIzAwODlENiI+IDxwYXRoIGQ9Ik03LjQ3IDEyLjQxMmwzLjM0OC0uNTkyLjAzMS0uMDA3LTEuNzIyLTIuMDQ5YTI5MS40NzQgMjkxLjQ3NCAwIDAxLTEuNzIzLTIuMDU4YzAtLjAxIDEuNzc5LTQuOTA5IDEuNzg5LTQuOTI2YTc4OC45NSA3ODguOTUgMCAwMTIuOTM0IDUuMDY2bDIuOTUgNS4xMTUuMDIzLjAzOS0xMC45NDgtLjAwMSAzLjMxNy0uNTg3ek0uOSAxMS43ODhjMC0uMDAzLjgxMS0xLjQxMiAxLjgwMy0zLjEzMUw0LjUwNyA1LjUzbDIuMTAyLTEuNzY0QzcuNzY1IDIuNzk3IDguNzE0IDIgOC43MTcgMmEuMzcuMzcgMCAwMS0uMDMzLjA4NUw2LjQgNi45ODEgNC4xNiAxMS43ODlsLTEuNjMuMDAyYy0uODk3LjAwMS0xLjYzIDAtMS42My0uMDAzeiIvPiA8L2c+PC9zdmc+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1jb3Ntb3MtZGItdmNvcmUpIiBzdHlsZT0ic3Ryb2tlOiMwNDc4NTciLz4KPHRleHQgeD0iMzgyIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmaWxsOiMwNDc4NTciPk1vbmdvREIgd2lyZSBwcm90b2NvbDwvdGV4dD4KPHJlY3QgeD0iNjE0IiB5PSI3NiIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5Db3Ntb3MgREIgKHZDb3JlKTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIxMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5Nb25nb0RCLWNvbXBhdGlibGU8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iMTU4IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiOCI+TUFOQUdFTUVOVCBSRVFVRVNUUyDCtyBWSUEgVEVOU09SOTwvdGV4dD4KPGxpbmUgeDE9IjE1NCIgeTE9IjE5NiIgeDI9IjMwMCIgeTI9IjE5NiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1jb3Ntb3MtZGItdmNvcmUpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0eWxlPSJmaWxsOiNlY2ZkZjU7c3Ryb2tlOiMwNDc4NTciLz4KPHRleHQgeD0iMzk0IiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSIzOTQiIHk9IjIwOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNDg0IiB5MT0iMTk2IiB4Mj0iNjEwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWNvc21vcy1kYi12Y29yZSkiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8cmVjdCB4PSI2MTQiIHk9IjE2NCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSI3MTIiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMS41cHgiPkF6dXJlIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnRoZSBiYWNrZW5kJ3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==)

![Database requests (MongoDB wire protocol) connect directly to Cosmos DB (vCore). The Tensor9 service adapter translates DocumentDB API management calls to Azure management API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIENvc21vcyBEQiAodkNvcmUpLiBUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgdHJhbnNsYXRlcyBEb2N1bWVudERCIEFQSSBtYW5hZ2VtZW50IGNhbGxzIHRvIEF6dXJlIG1hbmFnZW1lbnQgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtY29zbW9zLWRiLXZjb3JlIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIHN0eWxlPSJmaWxsOiM2NDc0OGIiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjgiIHk9IjM0IiB3aWR0aD0iODIwIiBoZWlnaHQ9IjIwNiIgcng9IjE2IiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWRhc2hhcnJheT0iNSA1IiBzdHlsZT0iZmlsbDojMGYxNzJhO3N0cm9rZTojNDc1NTY5Ii8+Cjx0ZXh0IHg9IjI2IiB5PSI1NCIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzZlZTdiNyI+T04gQVpVUkU8L3RleHQ+PHN2ZyB4PSI3OTIiIHk9IjM2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgZmlsbD0ibm9uZSI+PGcgZmlsbD0iIzAwODlENiI+IDxwYXRoIGQ9Ik03LjQ3IDEyLjQxMmwzLjM0OC0uNTkyLjAzMS0uMDA3LTEuNzIyLTIuMDQ5YTI5MS40NzQgMjkxLjQ3NCAwIDAxLTEuNzIzLTIuMDU4YzAtLjAxIDEuNzc5LTQuOTA5IDEuNzg5LTQuOTI2YTc4OC45NSA3ODguOTUgMCAwMTIuOTM0IDUuMDY2bDIuOTUgNS4xMTUuMDIzLjAzOS0xMC45NDgtLjAwMSAzLjMxNy0uNTg3ek0uOSAxMS43ODhjMC0uMDAzLjgxMS0xLjQxMiAxLjgwMy0zLjEzMUw0LjUwNyA1LjUzbDIuMTAyLTEuNzY0QzcuNzY1IDIuNzk3IDguNzE0IDIgOC43MTcgMmEuMzcuMzcgMCAwMS0uMDMzLjA4NUw2LjQgNi45ODEgNC4xNiAxMS43ODlsLTEuNjMuMDAyYy0uODk3LjAwMS0xLjYzIDAtMS42My0uMDAzeiIvPiA8L2c+PC9zdmc+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3YjciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzZlZTdiNyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1jb3Ntb3MtZGItdmNvcmUpIiBzdHlsZT0ic3Ryb2tlOiM2ZWU3YjciLz4KPHRleHQgeD0iMzgyIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjOTRhM2I4OyBmaWxsOiM2ZWU3YjciPk1vbmdvREIgd2lyZSBwcm90b2NvbDwvdGV4dD4KPHJlY3QgeD0iNjE0IiB5PSI3NiIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6IzFlMjkzYjtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxMnB4Ij5Db3Ntb3MgREIgKHZDb3JlKTwvdGV4dD4KPHRleHQgeD0iNzEyIiB5PSIxMjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5Nb25nb0RCLWNvbXBhdGlibGU8L3RleHQ+Cjx0ZXh0IHg9IjIwMCIgeT0iMTU4IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzY0NzQ4YiI+TUFOQUdFTUVOVCBSRVFVRVNUUyDCtyBWSUEgVEVOU09SOTwvdGV4dD4KPGxpbmUgeDE9IjE1NCIgeTE9IjE5NiIgeDI9IjMwMCIgeTI9IjE5NiIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1jb3Ntb3MtZGItdmNvcmUpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjOTRhM2I4Ij5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0eWxlPSJmaWxsOiMwNjRlM2I7c3Ryb2tlOiM2ZWU3YjciLz4KPHRleHQgeD0iMzk0IiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNmVlN2I3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSIzOTQiIHk9IjIwOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzZlZTdiNyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNDg0IiB5MT0iMTk2IiB4Mj0iNjEwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWNvc21vcy1kYi12Y29yZSkiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8cmVjdCB4PSI2MTQiIHk9IjE2NCIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6IzFlMjkzYjtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSI3MTIiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxMS41cHgiPkF6dXJlIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnRoZSBiYWNrZW5kJ3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==)

Queries reach the database directly; only the management calls are translated.

#### Database connections

DocumentDB and Cosmos vCore each implement part of the MongoDB API. Both support graph lookups when the DocumentDB source uses engine version 8.0. DocumentDB 8.0.2 adds restricted correlated lookups, which this target does not provide. Cosmos vCore does not support server-side mapReduce, and it limits multi-document transactions to 30 seconds. Your driver connects directly to Cosmos vCore, where your queries and indexes run.

Each backend implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and tools keep making the same DocumentDB calls: describe the cluster, take a snapshot, restore to a point in time, add replicas, trigger a failover, change the tier or a parameter. For each supported operation, the adapter accepts the DocumentDB request, returns the DocumentDB response format, and performs the operation on Azure: snapshots and point-in-time restore to a new cluster, replica clusters, manual failover (forced or graceful promotion), and tier and storage updates. Global-cluster calls map to Cosmos vCore's single secondary region.

When your product is deployed into the target environment, Tensor9 compiles the cluster your stack already declares into the matching Azure Cosmos DB for MongoDB (vCore) resources and puts the connection string and credentials in your application's configuration. The adapter then handles the management calls your running system makes.

![The Tensor9 service adapter handles DocumentDB management requests using Azure management API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXp1cmUgbWFuYWdlbWVudCBBUEkgYW5kIHJldHVybnMgRG9jdW1lbnREQiByZXNwb25zZXMuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIHN0eWxlPSJmaWxsOiM5NGEzYjgiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjE2IiB5PSIzNCIgd2lkdGg9IjIzNiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMi41cHgiPkRvY3VtZW50REIgbWFuYWdlbWVudCBjYWxsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c25hcHNob3QgwrcgcG9pbnQtaW4tdGltZSByZXN0b3JlPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+cmVwbGljYSDCtyBmYWlsb3ZlciDCtyBnbG9iYWwgY2x1c3RlcjwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5zdG9wIC8gc3RhcnQgwrcgcGFyYW1ldGVyczwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5zYW1lIHJlcXVlc3QgLyByZXNwb25zZSBzaGFwZXM8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXp1cmUtbWFuYWdlbWVudC1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIgc3R5bGU9InN0cm9rZTojOTRhM2I4Ii8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0eWxlPSJmaWxsOiNlY2ZkZjU7c3Ryb2tlOiMwNDc4NTciLz4KPHRleHQgeD0iNDIwIiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXp1cmUtbWFuYWdlbWVudC1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPGxpbmUgeDE9IjU4OCIgeTE9IjEyOCIgeDI9IjUyNiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIgc3R5bGU9InN0cm9rZTojOTRhM2I4Ii8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojY2JkNWUxIi8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+QXp1cmUgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXN0b3JlcyDCtyByZXBsaWNhcyDCtyBmYWlsb3ZlcjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj50aWVyIGFuZCBzdG9yYWdlIHVwZGF0ZXM8L3RleHQ+Cjwvc3ZnPg==)

![The Tensor9 service adapter handles DocumentDB management requests using Azure management API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgQXp1cmUgbWFuYWdlbWVudCBBUEkgYW5kIHJldHVybnMgRG9jdW1lbnREQiByZXNwb25zZXMuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpIiB2aWV3Qm94PSIwIDAgMTAgMTAiIHJlZlg9IjgiIHJlZlk9IjUiIG1hcmtlcldpZHRoPSI3IiBtYXJrZXJIZWlnaHQ9IjciIG9yaWVudD0iYXV0by1zdGFydC1yZXZlcnNlIj48cGF0aCBkPSJNMCwwIEwxMCw1IEwwLDEwIHoiIHN0eWxlPSJmaWxsOiM2NDc0OGIiLz48L21hcmtlcj48L2RlZnM+CjxyZWN0IHg9IjE2IiB5PSIzNCIgd2lkdGg9IjIzNiIgaGVpZ2h0PSIxMjgiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iMTM0IiB5PSI2MCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxMi41cHgiPkRvY3VtZW50REIgbWFuYWdlbWVudCBjYWxsPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjgyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzk0YTNiOCI+c25hcHNob3QgwrcgcG9pbnQtaW4tdGltZSByZXN0b3JlPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9Ijk5IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzk0YTNiOCI+cmVwbGljYSDCtyBmYWlsb3ZlciDCtyBnbG9iYWwgY2x1c3RlcjwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxMTYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5zdG9wIC8gc3RhcnQgwrcgcGFyYW1ldGVyczwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSIxNDIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjOTRhM2I4Ij5zYW1lIHJlcXVlc3QgLyByZXNwb25zZSBzaGFwZXM8L3RleHQ+CjxsaW5lIHgxPSIyNTIiIHkxPSI3NCIgeDI9IjMxNCIgeTI9Ijc0IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXp1cmUtbWFuYWdlbWVudC1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIgc3R5bGU9InN0cm9rZTojNjQ3NDhiIi8+CjxyZWN0IHg9IjMxOCIgeT0iNTQiIHdpZHRoPSIyMDQiIGhlaWdodD0iODgiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0eWxlPSJmaWxsOiMwNjRlM2I7c3Ryb2tlOiM2ZWU3YjciLz4KPHRleHQgeD0iNDIwIiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3Yjc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjQyMCIgeT0iMTEyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNmVlN2I3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI1MjIiIHkxPSI3NCIgeDI9IjU4NCIgeTI9Ijc0IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItYXp1cmUtbWFuYWdlbWVudC1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPGxpbmUgeDE9IjU4OCIgeTE9IjEyOCIgeDI9IjUyNiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWF6dXJlLW1hbmFnZW1lbnQtYXBpKSIgc3R5bGU9InN0cm9rZTojNjQ3NDhiIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojMWUyOTNiO3N0cm9rZTojNDc1NTY5Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjZjFmNWY5OyBmb250LXNpemU6MTJweCI+QXp1cmUgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjx0ZXh0IHg9IjcwNCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5yZXN0b3JlcyDCtyByZXBsaWNhcyDCtyBmYWlsb3ZlcjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij50aWVyIGFuZCBzdG9yYWdlIHVwZGF0ZXM8L3RleHQ+Cjwvc3ZnPg==)

Tensor9 translates DocumentDB management requests to the backend API and returns DocumentDB responses.

#### Limitations

Where DocumentDB and Cosmos DB (vCore) differ

* **Stop and start are not supported.** Cosmos vCore has no pause; a cluster runs continuously.
* **Only one secondary region is supported.** There is no multi-region global-cluster object. Cross-region maps to a single secondary region with forced or graceful failover.
* **Event subscriptions are not supported.** DocumentDB event notifications publish to SNS. Azure Monitor works differently and has no direct equivalent.
* **DocumentDB-specific parameters are not supported.** Standard cluster parameters map to the cluster's configuration; parameters specific to DocumentDB have no equivalent on the backend.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the backend supports. Check the workload's queries, indexes and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Cosmos DB cluster in their Azure subscription. Maintenance windows, quotas and pricing are Microsoft's.

**Features and capacity.** The comparison table on this page lists feature and high-availability differences. Check the backend's pricing and capacity limits when you size the deployment.

## On Google Cloud

### Firestore (MongoDB compatibility)

| Operation | Area | Support | Depth | Notes |
| - | - | - | - | - |
| collStats | Admin & diagnostics | Supported | Full surface | - |
| dbStats | Admin & diagnostics | Supported | Full surface | - |
| explain | Admin & diagnostics | Supported | Full surface | query plan |
| hello | Admin & diagnostics | Supported | Full surface | topology handshake |
| isMaster | Admin & diagnostics | Supported | Full surface | legacy topology handshake |
| ping | Admin & diagnostics | Supported | Full surface | - |
| serverStatus | Admin & diagnostics | Supported | Full surface | - |
| delete | CRUD | Supported | Common | - |
| find | CRUD | Supported | Common | - |
| findAndModify | CRUD | Supported | Common | atomic read-modify-write |
| getMore | CRUD | Supported | Common | cursor iteration |
| insert | CRUD | Supported | Common | - |
| killCursors | CRUD | Supported | Most usage | - |
| update | CRUD | Supported | Common | - |
| Change streams (\$changeStream / watch) | Change streams | Partial | Most usage | in preview |
| create | Collections & databases | Supported | Most usage | - |
| drop | Collections & databases | Supported | Most usage | - |
| dropDatabase | Collections & databases | Supported | Full surface | - |
| listCollections | Collections & databases | Supported | Most usage | - |
| listDatabases | Collections & databases | Supported | Most usage | - |
| createIndexes | Indexes | Supported | Most usage | - |
| dropIndexes | Indexes | Supported | Most usage | - |
| listIndexes | Indexes | Supported | Most usage | - |
| aggregate | Query & aggregation | Partial | Common | supports \$lookup + text search; omits \$graphLookup and a large set of stages / accumulators / geospatial operators |
| count | Query & aggregation | Supported | Common | - |
| distinct | Query & aggregation | Partial | Most usage | - |
| mapReduce | Query & aggregation | Out of scope | Full surface | not supported |
| Transactions (startTransaction / commit / abort) | Transactions | Supported | Most usage | - |

#### How it works

Your application's MongoDB driver connects directly to Firestore with MongoDB compatibility. These database requests are the **data plane**. The driver and the MongoDB wire protocol stay the same, and Tensor9 does not proxy or translate them.

Management requests, such as snapshots, restores, replicas, failover and configuration changes, are the **control plane**. Tensor9 runs the DocumentDB API in the customer's Cloud Adapter deployment and translates each of these requests to the backend's management API. The sections below list which operations work and which return an error.

![Database requests (MongoDB wire protocol) connect directly to Firestore (Mongo compat). The Tensor9 service adapter translates DocumentDB API management calls to Firestore API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEZpcmVzdG9yZSAoTW9uZ28gY29tcGF0KS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBGaXJlc3RvcmUgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtZmlyZXN0b3JlLW1vbmdvLWNvbXBhdCIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBzdHlsZT0iZmlsbDojOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIgc3R5bGU9ImZpbGw6I2Y4ZmFmYztzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSIyNiIgeT0iNTQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4OyBmaWxsOiMwNDc4NTciPk9OIEdPT0dMRSBDTE9VRDwvdGV4dD48c3ZnIHg9Ijc5MiIgeT0iMzYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAtMjUgMjU2IDI1NiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+PGc+IDxwYXRoIGQ9Ik0xNzAuMjUxNyw1Ni44MTg2IEwxOTIuNTA0NywzNC41NjU2IEwxOTMuOTg3NywyNS4xOTU2IEMxNTMuNDM2NywtMTEuNjc3NCA4OC45NzU3LC03LjQ5NjQgNTIuNDIwNywzMy45MTk2IEM0Mi4yNjY3LDQ1LjQyMjYgMzQuNzMzNyw1OS43NjM2IDMwLjcxNjcsNzQuNTcyNiBMMzguNjg2Nyw3My40NDk2IEw4My4xOTE3LDY2LjExMDYgTDg2LjYyNzcsNjIuNTk2NiBDMTA2LjQyNDcsNDAuODU0NiAxMzkuODk3NywzNy45Mjk2IDE2Mi43NTU3LDU2LjQyODYgTDE3MC4yNTE3LDU2LjgxODYgWiIgZmlsbD0iI0VBNDMzNSI+IDwvcGF0aD4gPHBhdGggZD0iTTIyNC4yMDQ4LDczLjkxODIgQzIxOS4wODk4LDU1LjA4MjIgMjA4LjU4ODgsMzguMTQ5MiAxOTMuOTg3OCwyNS4xOTYyIEwxNjIuNzU1OCw1Ni40MjgyIEMxNzUuOTQzOCw2Ny4yMDQyIDE4My40NTY4LDgzLjQzODIgMTgzLjEzNDgsMTAwLjQ2NTIgTDE4My4xMzQ4LDEwNi4wMDkyIEMxOTguNDg1OCwxMDYuMDA5MiAyMTAuOTMxOCwxMTguNDU0MiAyMTAuOTMxOCwxMzMuODA1MiBDMjEwLjkzMTgsMTQ5LjE1NzIgMTk4LjQ4NTgsMTYxLjI5MDIgMTgzLjEzNDgsMTYxLjI5MDIgTDEyNy40NjM4LDE2MS4yOTAyIEwxMjEuOTk3OCwxNjcuMjI0MiBMMTIxLjk5NzgsMjAwLjU2NDIgTDEyNy40NjM4LDIwNS43OTUyIEwxODMuMTM0OCwyMDUuNzk1MiBDMjIzLjA2NDgsMjA2LjEwNjIgMjU1LjY4NjgsMTc0LjMwMTIgMjU1Ljk5NzgsMTM0LjM3MTIgQzI1Ni4xODU4LDExMC4xNjgyIDI0NC4yNTI4LDg3LjQ3ODIgMjI0LjIwNDgsNzMuOTE4MiIgZmlsbD0iIzQyODVGNCI+IDwvcGF0aD4gPHBhdGggZD0iTTcxLjg3MDQsMjA1Ljc5NTcgTDEyNy40NjM0LDIwNS43OTU3IEwxMjcuNDYzNCwxNjEuMjg5NyBMNzEuODcwNCwxNjEuMjg5NyBDNjcuOTA5NCwxNjEuMjg4NyA2NC4wNzM0LDE2MC40Mzc3IDYwLjQ3MTQsMTU4Ljc5MTcgTDUyLjU4NDQsMTYxLjIxMTcgTDMwLjE3NTQsMTgzLjQ2NDcgTDI4LjIyMzQsMTkxLjAzODcgQzQwLjc5MDQsMjAwLjUyNzcgNTYuMTIzNCwyMDUuODYzNyA3MS44NzA0LDIwNS43OTU3IiBmaWxsPSIjMzRBODUzIj4gPC9wYXRoPiA8cGF0aCBkPSJNNzEuODcwNCw2MS40MjU1IEMzMS45Mzk0LDYxLjY2MzUgLTAuMjM2Niw5NC4yMjc1IDAuMDAxNCwxMzQuMTU3NSBDMC4xMzQ0LDE1Ni40NTU1IDEwLjU0ODQsMTc3LjQ0NTUgMjguMjIzNCwxOTEuMDM4NSBMNjAuNDcxNCwxNTguNzkxNSBDNDYuNDgwNCwxNTIuNDcwNSA0MC4yNjM0LDEzNi4wMDU1IDQ2LjU4NDQsMTIyLjAxNTUgQzUyLjkwNDQsMTA4LjAyNTUgNjkuMzcwNCwxMDEuODA4NSA4My4zNTk0LDEwOC4xMjg1IEM4OS41MjQ0LDExMC45MTM1IDk0LjQ2MTQsMTE1Ljg1MTUgOTcuMjQ2NCwxMjIuMDE1NSBMMTI5LjQ5NDQsODkuNzY4NSBDMTE1Ljc3MzQsNzEuODMxNSA5NC40NTM0LDYxLjM0NDUgNzEuODcwNCw2MS40MjU1IiBmaWxsPSIjRkJCQzA1Ij4gPC9wYXRoPiA8L2c+PC9zdmc+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1maXJlc3RvcmUtbW9uZ28tY29tcGF0KSIgc3R5bGU9InN0cm9rZTojMDQ3ODU3Ii8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YjsgZmlsbDojMDQ3ODU3Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iNzEyIiB5PSIxMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+RmlyZXN0b3JlIChNb25nbyBjb21wYXQpPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjEyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnNlcnZlcmxlc3MgwrcgTW9uZ29EQiA3LjAgd2lyZTwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4Ij5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWZpcmVzdG9yZS1tb25nby1jb21wYXQpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiIj5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0eWxlPSJmaWxsOiNlY2ZkZjU7c3Ryb2tlOiMwNDc4NTciLz4KPHRleHQgeD0iMzk0IiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSIzOTQiIHk9IjIwOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNDg0IiB5MT0iMTk2IiB4Mj0iNjEwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWZpcmVzdG9yZS1tb25nby1jb21wYXQpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPHJlY3QgeD0iNjE0IiB5PSIxNjQiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iNzEyIiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTEuNXB4Ij5GaXJlc3RvcmUgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnRoZSBiYWNrZW5kJ3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==)

![Database requests (MongoDB wire protocol) connect directly to Firestore (Mongo compat). The Tensor9 service adapter translates DocumentDB API management calls to Firestore API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEZpcmVzdG9yZSAoTW9uZ28gY29tcGF0KS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBGaXJlc3RvcmUgQVBJLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGQtZmlyZXN0b3JlLW1vbmdvLWNvbXBhdCIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBzdHlsZT0iZmlsbDojNjQ3NDhiIi8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSI4IiB5PSIzNCIgd2lkdGg9IjgyMCIgaGVpZ2h0PSIyMDYiIHJ4PSIxNiIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1kYXNoYXJyYXk9IjUgNSIgc3R5bGU9ImZpbGw6IzBmMTcyYTtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSIyNiIgeT0iNTQiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjNjQ3NDhiOyBmaWxsOiM2ZWU3YjciPk9OIEdPT0dMRSBDTE9VRDwvdGV4dD48c3ZnIHg9Ijc5MiIgeT0iMzYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAtMjUgMjU2IDI1NiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+PGc+IDxwYXRoIGQ9Ik0xNzAuMjUxNyw1Ni44MTg2IEwxOTIuNTA0NywzNC41NjU2IEwxOTMuOTg3NywyNS4xOTU2IEMxNTMuNDM2NywtMTEuNjc3NCA4OC45NzU3LC03LjQ5NjQgNTIuNDIwNywzMy45MTk2IEM0Mi4yNjY3LDQ1LjQyMjYgMzQuNzMzNyw1OS43NjM2IDMwLjcxNjcsNzQuNTcyNiBMMzguNjg2Nyw3My40NDk2IEw4My4xOTE3LDY2LjExMDYgTDg2LjYyNzcsNjIuNTk2NiBDMTA2LjQyNDcsNDAuODU0NiAxMzkuODk3NywzNy45Mjk2IDE2Mi43NTU3LDU2LjQyODYgTDE3MC4yNTE3LDU2LjgxODYgWiIgZmlsbD0iI0VBNDMzNSI+IDwvcGF0aD4gPHBhdGggZD0iTTIyNC4yMDQ4LDczLjkxODIgQzIxOS4wODk4LDU1LjA4MjIgMjA4LjU4ODgsMzguMTQ5MiAxOTMuOTg3OCwyNS4xOTYyIEwxNjIuNzU1OCw1Ni40MjgyIEMxNzUuOTQzOCw2Ny4yMDQyIDE4My40NTY4LDgzLjQzODIgMTgzLjEzNDgsMTAwLjQ2NTIgTDE4My4xMzQ4LDEwNi4wMDkyIEMxOTguNDg1OCwxMDYuMDA5MiAyMTAuOTMxOCwxMTguNDU0MiAyMTAuOTMxOCwxMzMuODA1MiBDMjEwLjkzMTgsMTQ5LjE1NzIgMTk4LjQ4NTgsMTYxLjI5MDIgMTgzLjEzNDgsMTYxLjI5MDIgTDEyNy40NjM4LDE2MS4yOTAyIEwxMjEuOTk3OCwxNjcuMjI0MiBMMTIxLjk5NzgsMjAwLjU2NDIgTDEyNy40NjM4LDIwNS43OTUyIEwxODMuMTM0OCwyMDUuNzk1MiBDMjIzLjA2NDgsMjA2LjEwNjIgMjU1LjY4NjgsMTc0LjMwMTIgMjU1Ljk5NzgsMTM0LjM3MTIgQzI1Ni4xODU4LDExMC4xNjgyIDI0NC4yNTI4LDg3LjQ3ODIgMjI0LjIwNDgsNzMuOTE4MiIgZmlsbD0iIzQyODVGNCI+IDwvcGF0aD4gPHBhdGggZD0iTTcxLjg3MDQsMjA1Ljc5NTcgTDEyNy40NjM0LDIwNS43OTU3IEwxMjcuNDYzNCwxNjEuMjg5NyBMNzEuODcwNCwxNjEuMjg5NyBDNjcuOTA5NCwxNjEuMjg4NyA2NC4wNzM0LDE2MC40Mzc3IDYwLjQ3MTQsMTU4Ljc5MTcgTDUyLjU4NDQsMTYxLjIxMTcgTDMwLjE3NTQsMTgzLjQ2NDcgTDI4LjIyMzQsMTkxLjAzODcgQzQwLjc5MDQsMjAwLjUyNzcgNTYuMTIzNCwyMDUuODYzNyA3MS44NzA0LDIwNS43OTU3IiBmaWxsPSIjMzRBODUzIj4gPC9wYXRoPiA8cGF0aCBkPSJNNzEuODcwNCw2MS40MjU1IEMzMS45Mzk0LDYxLjY2MzUgLTAuMjM2Niw5NC4yMjc1IDAuMDAxNCwxMzQuMTU3NSBDMC4xMzQ0LDE1Ni40NTU1IDEwLjU0ODQsMTc3LjQ0NTUgMjguMjIzNCwxOTEuMDM4NSBMNjAuNDcxNCwxNTguNzkxNSBDNDYuNDgwNCwxNTIuNDcwNSA0MC4yNjM0LDEzNi4wMDU1IDQ2LjU4NDQsMTIyLjAxNTUgQzUyLjkwNDQsMTA4LjAyNTUgNjkuMzcwNCwxMDEuODA4NSA4My4zNTk0LDEwOC4xMjg1IEM4OS41MjQ0LDExMC45MTM1IDk0LjQ2MTQsMTE1Ljg1MTUgOTcuMjQ2NCwxMjIuMDE1NSBMMTI5LjQ5NDQsODkuNzY4NSBDMTE1Ljc3MzQsNzEuODMxNSA5NC40NTM0LDYxLjM0NDUgNzEuODcwNCw2MS40MjU1IiBmaWxsPSIjRkJCQzA1Ij4gPC9wYXRoPiA8L2c+PC9zdmc+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3YjciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzZlZTdiNyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1maXJlc3RvcmUtbW9uZ28tY29tcGF0KSIgc3R5bGU9InN0cm9rZTojNmVlN2I3Ii8+Cjx0ZXh0IHg9IjM4MiIgeT0iMTAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzk0YTNiODsgZmlsbDojNmVlN2I3Ij5Nb25nb0RCIHdpcmUgcHJvdG9jb2w8L3RleHQ+CjxyZWN0IHg9IjYxNCIgeT0iNzYiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iNzEyIiB5PSIxMDMiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjZjFmNWY5OyBmb250LXNpemU6MTJweCI+RmlyZXN0b3JlIChNb25nbyBjb21wYXQpPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjEyMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnNlcnZlcmxlc3MgwrcgTW9uZ29EQiA3LjAgd2lyZTwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjNjQ3NDhiIj5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWZpcmVzdG9yZS1tb25nby1jb21wYXQpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPHRleHQgeD0iMjI3IiB5PSIxODgiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjOTRhM2I4Ij5Eb2N1bWVudERCIEFQSTwvdGV4dD4KPHJlY3QgeD0iMzA0IiB5PSIxNjQiIHdpZHRoPSIxODAiIGhlaWdodD0iNjYiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjciIHN0eWxlPSJmaWxsOiMwNjRlM2I7c3Ryb2tlOiM2ZWU3YjciLz4KPHRleHQgeD0iMzk0IiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNmVlN2I3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSIzOTQiIHk9IjIwOCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzZlZTdiNyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNDg0IiB5MT0iMTk2IiB4Mj0iNjEwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWZpcmVzdG9yZS1tb25nby1jb21wYXQpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPHJlY3QgeD0iNjE0IiB5PSIxNjQiIHdpZHRoPSIxOTYiIGhlaWdodD0iNjQiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iNzEyIiB5PSIxOTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjZjFmNWY5OyBmb250LXNpemU6MTEuNXB4Ij5GaXJlc3RvcmUgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnRoZSBiYWNrZW5kJ3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==)

Queries reach the database directly; only the management calls are translated.

#### Database connections

Firestore with MongoDB compatibility supports the MongoDB 7.0 wire protocol. Firestore manages instance sizing, read scaling and multi-region high availability for you. Its MongoDB compatibility has limits: no vector search or collation, many unsupported aggregation stages, and change streams in preview. Your driver connects directly to Firestore.

Each backend implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and tools keep making the same DocumentDB calls. For each supported operation, the adapter accepts the DocumentDB request, returns the DocumentDB response format, and performs the operation through the Firestore API: on-demand backups, point-in-time recovery within Firestore's 7-day window, and database-level settings. Much of the rest has nothing to map to, because Firestore is serverless: reads scale automatically, failover is automatic, and there is no cluster to stop, start or size. The limitations below list those operations; each returns an error.

When your product is deployed into the target environment, Tensor9 compiles the cluster your stack already declares into the matching Firestore with MongoDB compatibility resources and puts the connection string and credentials in your application's configuration. The adapter then handles the management calls your running system makes.

![The Tensor9 service adapter handles DocumentDB management requests using Firestore API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgRmlyZXN0b3JlIEFQSSBhbmQgcmV0dXJucyBEb2N1bWVudERCIHJlc3BvbnNlcy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiMzMzQxNTV9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWhjLWRvY3VtZW50ZGItZmlyZXN0b3JlLWFwaSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBzdHlsZT0iZmlsbDojOTRhM2I4Ii8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojY2JkNWUxIi8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTIuNXB4Ij5Eb2N1bWVudERCIG1hbmFnZW1lbnQgY2FsbDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnNuYXBzaG90IMK3IHBvaW50LWluLXRpbWUgcmVzdG9yZTwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnJlcGxpY2EgwrcgZmFpbG92ZXIgwrcgZ2xvYmFsIGNsdXN0ZXI8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+c3RvcCAvIHN0YXJ0IMK3IHBhcmFtZXRlcnM8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzY0NzQ4YiI+c2FtZSByZXF1ZXN0IC8gcmVzcG9uc2Ugc2hhcGVzPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWZpcmVzdG9yZS1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWZpcmVzdG9yZS1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNyIgc3R5bGU9ImZpbGw6I2VjZmRmNTtzdHJva2U6IzA0Nzg1NyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjUyMiIgeTE9Ijc0IiB4Mj0iNTg0IiB5Mj0iNzQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIgc3R5bGU9InN0cm9rZTojOTRhM2I4Ii8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIgc3R5bGU9InN0cm9rZTojOTRhM2I4Ii8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojY2JkNWUxIi8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+RmlyZXN0b3JlIEFQSTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPmJhY2t1cHMgwrcgUElUUjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5kYXRhYmFzZSBzZXR0aW5nczwvdGV4dD4KPC9zdmc+)

![The Tensor9 service adapter handles DocumentDB management requests using Firestore API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgRmlyZXN0b3JlIEFQSSBhbmQgcmV0dXJucyBEb2N1bWVudERCIHJlc3BvbnNlcy4iPjxzdHlsZT50ZXh0e2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsUm9ib3RvLCdIZWx2ZXRpY2EgTmV1ZScsQXJpYWwsc2Fucy1zZXJpZjtmaWxsOiNjYmQ1ZTF9PC9zdHlsZT4KPGRlZnM+PG1hcmtlciBpZD0iYWhjLWRvY3VtZW50ZGItZmlyZXN0b3JlLWFwaSIgdmlld0JveD0iMCAwIDEwIDEwIiByZWZYPSI4IiByZWZZPSI1IiBtYXJrZXJXaWR0aD0iNyIgbWFya2VySGVpZ2h0PSI3IiBvcmllbnQ9ImF1dG8tc3RhcnQtcmV2ZXJzZSI+PHBhdGggZD0iTTAsMCBMMTAsNSBMMCwxMCB6IiBzdHlsZT0iZmlsbDojNjQ3NDhiIi8+PC9tYXJrZXI+PC9kZWZzPgo8cmVjdCB4PSIxNiIgeT0iMzQiIHdpZHRoPSIyMzYiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojMWUyOTNiO3N0cm9rZTojNDc1NTY5Ii8+Cjx0ZXh0IHg9IjEzNCIgeT0iNjAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjZjFmNWY5OyBmb250LXNpemU6MTIuNXB4Ij5Eb2N1bWVudERCIG1hbmFnZW1lbnQgY2FsbDwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI4MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnNuYXBzaG90IMK3IHBvaW50LWluLXRpbWUgcmVzdG9yZTwvdGV4dD4KPHRleHQgeD0iMTM0IiB5PSI5OSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnJlcGxpY2EgwrcgZmFpbG92ZXIgwrcgZ2xvYmFsIGNsdXN0ZXI8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTE2IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzk0YTNiOCI+c3RvcCAvIHN0YXJ0IMK3IHBhcmFtZXRlcnM8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iMTQyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTBweCAnU0YgTW9ubycsIHVpLW1vbm9zcGFjZSwgJ0pldEJyYWlucyBNb25vJywgTWVubG8sIG1vbm9zcGFjZTsgZmlsbDogIzk0YTNiOCI+c2FtZSByZXF1ZXN0IC8gcmVzcG9uc2Ugc2hhcGVzPC90ZXh0Pgo8bGluZSB4MT0iMjUyIiB5MT0iNzQiIHgyPSIzMTQiIHkyPSI3NCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWZpcmVzdG9yZS1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLWZpcmVzdG9yZS1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPHJlY3QgeD0iMzE4IiB5PSI1NCIgd2lkdGg9IjIwNCIgaGVpZ2h0PSI4OCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNyIgc3R5bGU9ImZpbGw6IzA2NGUzYjtzdHJva2U6IzZlZTdiNyIvPgo8dGV4dCB4PSI0MjAiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNzAwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzZlZTdiNzsgZm9udC1zaXplOjEycHgiPlRlbnNvcjk8L3RleHQ+CiAgPHRleHQgeD0iNDIwIiB5PSIxMTIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMC41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3YjciPnNlcnZpY2UgYWRhcHRlcjwvdGV4dD4KPGxpbmUgeDE9IjUyMiIgeTE9Ijc0IiB4Mj0iNTg0IiB5Mj0iNzQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIgc3R5bGU9InN0cm9rZTojNjQ3NDhiIi8+CjxsaW5lIHgxPSI1ODgiIHkxPSIxMjgiIHgyPSI1MjYiIHkyPSIxMjgiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1maXJlc3RvcmUtYXBpKSIgc3R5bGU9InN0cm9rZTojNjQ3NDhiIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojMWUyOTNiO3N0cm9rZTojNDc1NTY5Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjZjFmNWY5OyBmb250LXNpemU6MTJweCI+RmlyZXN0b3JlIEFQSTwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSI5NCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPmJhY2t1cHMgwrcgUElUUjwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5kYXRhYmFzZSBzZXR0aW5nczwvdGV4dD4KPC9zdmc+)

Tensor9 translates DocumentDB management requests to the backend API and returns DocumentDB responses.

#### Limitations

Where DocumentDB and Firestore (Mongo compat) differ

* **Instance controls are not supported.** Firestore is serverless: there are no replica instances to add, no manual failover, no stop / start, and no compute or storage sizing. Reads scale and fail over automatically.
* **Multi-region behaves differently: you choose it when the database is created.** The database's location is fixed at creation. There is no global-cluster object and no switchover call.
* **Most cluster parameters are not supported.** Database-level settings (point-in-time recovery, delete protection) map; most DocumentDB cluster parameters have no equivalent.
* **Event subscriptions are not supported.** DocumentDB event notifications publish to SNS. Cloud Monitoring works differently and has no direct equivalent.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the backend supports. Check the workload's queries, indexes and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Firestore database in their Google Cloud project. Quotas and pricing are Google's.

**Features and capacity.** The comparison table on this page lists feature and high-availability differences. Check the backend's pricing and capacity limits when you size the deployment.

## On OCI

### Oracle Autonomous JSON Database (MongoDB API)

| Operation | Area | Support | Depth | Notes |
| - | - | - | - | - |
| collStats | Admin & diagnostics | Supported | Full surface | - |
| dbStats | Admin & diagnostics | Supported | Full surface | - |
| explain | Admin & diagnostics | Supported | Full surface | query plan |
| hello | Admin & diagnostics | Supported | Full surface | topology handshake |
| isMaster | Admin & diagnostics | Supported | Full surface | legacy topology handshake |
| ping | Admin & diagnostics | Supported | Full surface | - |
| serverStatus | Admin & diagnostics | Supported | Full surface | - |
| delete | CRUD | Supported | Common | - |
| find | CRUD | Supported | Common | - |
| findAndModify | CRUD | Supported | Common | atomic read-modify-write |
| getMore | CRUD | Supported | Common | cursor iteration |
| insert | CRUD | Supported | Common | - |
| killCursors | CRUD | Supported | Most usage | - |
| update | CRUD | Supported | Common | - |
| Change streams (\$changeStream / watch) | Change streams | Partial | Full surface | 26ai beta preview |
| create | Collections & databases | Supported | Most usage | - |
| drop | Collections & databases | Supported | Most usage | - |
| dropDatabase | Collections & databases | Supported | Full surface | - |
| listCollections | Collections & databases | Supported | Most usage | - |
| listDatabases | Collections & databases | Supported | Most usage | - |
| createIndexes | Indexes | Supported | Most usage | - |
| dropIndexes | Indexes | Supported | Most usage | - |
| listIndexes | Indexes | Supported | Most usage | - |
| \$sql stage / cross-collection SQL joins | Query & aggregation | Supported | Full surface | query collections through Oracle SQL, in addition to the MongoDB API |
| aggregate | Query & aggregation | Partial | Common | MongoDB 4.2-era pipeline |
| count | Query & aggregation | Supported | Common | - |
| distinct | Query & aggregation | Supported | Most usage | - |
| mapReduce | Query & aggregation | Out of scope | Full surface | not supported |
| Transactions (startTransaction / commit / abort) | Transactions | Partial | Most usage | supported; some BSON types coerce on load |

#### How it works

Your application's MongoDB driver connects directly to Oracle Autonomous JSON Database. These database requests are the **data plane**. The driver and the MongoDB wire protocol stay the same, and Tensor9 does not proxy or translate them.

Management requests, such as snapshots, restores, replicas, failover and configuration changes, are the **control plane**. Tensor9 runs the DocumentDB API in the customer's Cloud Adapter deployment and translates each of these requests to the backend's management API. The sections below list which operations work and which return an error.

![Database requests (MongoDB wire protocol) connect directly to Autonomous JSON Database. The Tensor9 service adapter translates DocumentDB API management calls to OCI management API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEF1dG9ub21vdXMgSlNPTiBEYXRhYmFzZS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBPQ0kgbWFuYWdlbWVudCBBUEkuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojMzM0MTU1fTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoZC1hdXRvbm9tb3VzLWpzb24tZGF0YWJhc2UiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgc3R5bGU9ImZpbGw6Izk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iOCIgeT0iMzQiIHdpZHRoPSI4MjAiIGhlaWdodD0iMjA2IiByeD0iMTYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiIHN0eWxlPSJmaWxsOiNmOGZhZmM7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iMjYiIHk9IjU0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzk0YTNiODsgZmlsbDojMDQ3ODU3Ij5PTiBPQ0k8L3RleHQ+PHN2ZyB4PSI3OTIiIHk9IjM2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+PHBhdGggZmlsbD0iI0M3NDYzNCIgZD0iTTE2LjQxMiA0LjQxMmgtOC44MmE3LjU4OCA3LjU4OCAwIDAgMC0uMDA4IDE1LjE3Nmg4LjgyOGE3LjU4OCA3LjU4OCAwIDAgMCAwLTE1LjE3Nm0tLjE5MyAxMi41MDJINy43ODZhNC45MTUgNC45MTUgMCAwIDEgMC05LjgyOGg4LjQzM2E0LjkxNCA0LjkxNCAwIDEgMSAwIDkuODI4Ii8+PC9zdmc+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiNjYmQ1ZTEiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM5NGEzYjg7IGZpbGw6IzA0Nzg1NyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1hdXRvbm9tb3VzLWpzb24tZGF0YWJhc2UpIiBzdHlsZT0ic3Ryb2tlOiMwNDc4NTciLz4KPHRleHQgeD0iMzgyIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjNjQ3NDhiOyBmaWxsOiMwNDc4NTciPk1vbmdvREIgd2lyZSBwcm90b2NvbDwvdGV4dD4KPHJlY3QgeD0iNjE0IiB5PSI3NiIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwZjE3MmE7IGZvbnQtc2l6ZToxMnB4Ij5BdXRvbm9tb3VzIEpTT04gRGF0YWJhc2U8L3RleHQ+Cjx0ZXh0IHg9IjcxMiIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+T3JhY2xlIEFQSSBmb3IgTW9uZ29EQjwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjOTRhM2I4Ij5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWF1dG9ub21vdXMtanNvbi1kYXRhYmFzZSkiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNyIgc3R5bGU9ImZpbGw6I2VjZmRmNTtzdHJva2U6IzA0Nzg1NyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICMwNDc4NTc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtYXV0b25vbW91cy1qc29uLWRhdGFiYXNlKSIgc3R5bGU9InN0cm9rZTojOTRhM2I4Ii8+CjxyZWN0IHg9IjYxNCIgeT0iMTY0IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojY2JkNWUxIi8+Cjx0ZXh0IHg9IjcxMiIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjExLjVweCI+T0NJIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnRoZSBiYWNrZW5kJ3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==)

![Database requests (MongoDB wire protocol) connect directly to Autonomous JSON Database. The Tensor9 service adapter translates DocumentDB API management calls to OCI management API.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMjUyIiB2aWV3Qm94PSIwIDAgODM2IDI1MiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJEYXRhYmFzZSByZXF1ZXN0cyAoTW9uZ29EQiB3aXJlIHByb3RvY29sKSBjb25uZWN0IGRpcmVjdGx5IHRvIEF1dG9ub21vdXMgSlNPTiBEYXRhYmFzZS4gVGhlIFRlbnNvcjkgc2VydmljZSBhZGFwdGVyIHRyYW5zbGF0ZXMgRG9jdW1lbnREQiBBUEkgbWFuYWdlbWVudCBjYWxscyB0byBPQ0kgbWFuYWdlbWVudCBBUEkuIj48c3R5bGU+dGV4dHtmb250LWZhbWlseTpJbnRlciwtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwnU2Vnb2UgVUknLFJvYm90bywnSGVsdmV0aWNhIE5ldWUnLEFyaWFsLHNhbnMtc2VyaWY7ZmlsbDojY2JkNWUxfTwvc3R5bGU+CjxkZWZzPjxtYXJrZXIgaWQ9ImFoZC1hdXRvbm9tb3VzLWpzb24tZGF0YWJhc2UiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgc3R5bGU9ImZpbGw6IzY0NzQ4YiIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iOCIgeT0iMzQiIHdpZHRoPSI4MjAiIGhlaWdodD0iMjA2IiByeD0iMTYiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtZGFzaGFycmF5PSI1IDUiIHN0eWxlPSJmaWxsOiMwZjE3MmE7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iMjYiIHk9IjU0IiBzdHlsZT0iZm9udDogNzAwIDEwcHggSW50ZXIsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxLjNweDsgZmlsbDogIzY0NzQ4YjsgZmlsbDojNmVlN2I3Ij5PTiBPQ0k8L3RleHQ+PHN2ZyB4PSI3OTIiIHk9IjM2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+PHBhdGggZmlsbD0iI0M3NDYzNCIgZD0iTTE2LjQxMiA0LjQxMmgtOC44MmE3LjU4OCA3LjU4OCAwIDAgMC0uMDA4IDE1LjE3Nmg4LjgyOGE3LjU4OCA3LjU4OCAwIDAgMCAwLTE1LjE3Nm0tLjE5MyAxMi41MDJINy43ODZhNC45MTUgNC45MTUgMCAwIDEgMC05LjgyOGg4LjQzM2E0LjkxNCA0LjkxNCAwIDEgMSAwIDkuODI4Ii8+PC9zdmc+CjxyZWN0IHg9IjI2IiB5PSI4OCIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMTIiIHJ4PSIxMiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0eWxlPSJmaWxsOiMxZTI5M2I7c3Ryb2tlOiM0NzU1NjkiLz4KPHRleHQgeD0iOTAiIHk9IjEyNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxM3B4Ij5Zb3VyIGFwcDwvdGV4dD4KPHRleHQgeD0iOTAiIHk9IjE0NSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPk1vbmdvREIgZHJpdmVyPC90ZXh0Pgo8dGV4dCB4PSI5MCIgeT0iMTYyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjAwIDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3YjciPnVuY2hhbmdlZDwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSI4MiIgc3R5bGU9ImZvbnQ6IDcwMCAxMHB4IEludGVyLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMS4zcHg7IGZpbGw6ICM2NDc0OGI7IGZpbGw6IzZlZTdiNyI+REFUQUJBU0UgUkVRVUVTVFMgwrcgRElSRUNUIENPTk5FQ1RJT048L3RleHQ+CjxsaW5lIHgxPSIxNTQiIHkxPSIxMDgiIHgyPSI2MTAiIHkyPSIxMDgiIHN0cm9rZS13aWR0aD0iMi4yIiBtYXJrZXItZW5kPSJ1cmwoI2FoZC1hdXRvbm9tb3VzLWpzb24tZGF0YWJhc2UpIiBzdHlsZT0ic3Ryb2tlOiM2ZWU3YjciLz4KPHRleHQgeD0iMzgyIiB5PSIxMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMHB4ICdTRiBNb25vJywgdWktbW9ub3NwYWNlLCAnSmV0QnJhaW5zIE1vbm8nLCBNZW5sbywgbW9ub3NwYWNlOyBmaWxsOiAjOTRhM2I4OyBmaWxsOiM2ZWU3YjciPk1vbmdvREIgd2lyZSBwcm90b2NvbDwvdGV4dD4KPHJlY3QgeD0iNjE0IiB5PSI3NiIgd2lkdGg9IjE5NiIgaGVpZ2h0PSI2NCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6IzFlMjkzYjtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSI3MTIiIHk9IjEwMyIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDY1MCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICNmMWY1Zjk7IGZvbnQtc2l6ZToxMnB4Ij5BdXRvbm9tb3VzIEpTT04gRGF0YWJhc2U8L3RleHQ+Cjx0ZXh0IHg9IjcxMiIgeT0iMTIyIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzk0YTNiOCI+T3JhY2xlIEFQSSBmb3IgTW9uZ29EQjwvdGV4dD4KPHRleHQgeD0iMjAwIiB5PSIxNTgiIHN0eWxlPSJmb250OiA3MDAgMTBweCBJbnRlciwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDEuM3B4OyBmaWxsOiAjNjQ3NDhiIj5NQU5BR0VNRU5UIFJFUVVFU1RTIMK3IFZJQSBURU5TT1I5PC90ZXh0Pgo8bGluZSB4MT0iMTU0IiB5MT0iMTk2IiB4Mj0iMzAwIiB5Mj0iMTk2IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhkLWF1dG9ub21vdXMtanNvbi1kYXRhYmFzZSkiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8dGV4dCB4PSIyMjciIHk9IjE4OCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM5NGEzYjgiPkRvY3VtZW50REIgQVBJPC90ZXh0Pgo8cmVjdCB4PSIzMDQiIHk9IjE2NCIgd2lkdGg9IjE4MCIgaGVpZ2h0PSI2NiIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNyIgc3R5bGU9ImZpbGw6IzA2NGUzYjtzdHJva2U6IzZlZTdiNyIvPgo8dGV4dCB4PSIzOTQiIHk9IjE5MSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDcwMCAxMy41cHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2ZWU3Yjc7IGZvbnQtc2l6ZToxMnB4Ij5UZW5zb3I5PC90ZXh0PgogIDx0ZXh0IHg9IjM5NCIgeT0iMjA4IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTAuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNmVlN2I3Ij5zZXJ2aWNlIGFkYXB0ZXI8L3RleHQ+CjxsaW5lIHgxPSI0ODQiIHkxPSIxOTYiIHgyPSI2MTAiIHkyPSIxOTYiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGQtYXV0b25vbW91cy1qc29uLWRhdGFiYXNlKSIgc3R5bGU9InN0cm9rZTojNjQ3NDhiIi8+CjxyZWN0IHg9IjYxNCIgeT0iMTY0IiB3aWR0aD0iMTk2IiBoZWlnaHQ9IjY0IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojMWUyOTNiO3N0cm9rZTojNDc1NTY5Ii8+Cjx0ZXh0IHg9IjcxMiIgeT0iMTkxIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2YxZjVmOTsgZm9udC1zaXplOjExLjVweCI+T0NJIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MTIiIHk9IjIxMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnRoZSBiYWNrZW5kJ3MgbWFuYWdlbWVudCBBUEk8L3RleHQ+Cjwvc3ZnPg==)

Queries reach the database directly; only the management calls are translated.

#### Database connections

Autonomous JSON Database accepts your driver's connections through the Oracle Database API for MongoDB, which supports a MongoDB-4.2-era protocol and runs operations on Oracle's SQL / JSON engine. Your driver connects directly using a load-balanced connection string. You can also query those collections with SQL, which DocumentDB does not offer. Some newer MongoDB features are missing; see the comparison table on this page.

Each backend implements a different set of MongoDB features. The comparison table on this page covers transactions, change streams, lookups, text and vector search, and other features your application may use.

#### Database management

At runtime your application and tools keep making the same DocumentDB calls. For each supported operation, the adapter accepts the DocumentDB request, returns the DocumentDB response format, and performs the operation on OCI: backups and point-in-time recovery within the retention window, stop / start, and online compute and storage scaling. Operations that OCI has no equivalent for are listed under Limitations; each returns an error.

When your product is deployed into the target environment, Tensor9 compiles the cluster your stack already declares into the matching Oracle Autonomous JSON Database resources and puts the connection string and credentials in your application's configuration. The adapter then handles the management calls your running system makes.

![The Tensor9 service adapter handles DocumentDB management requests using OCI management API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgT0NJIG1hbmFnZW1lbnQgQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6IzMzNDE1NX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgc3R5bGU9ImZpbGw6Izk0YTNiOCIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6I2NiZDVlMSIvPgo8dGV4dCB4PSIxMzQiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzBmMTcyYTsgZm9udC1zaXplOjEyLjVweCI+RG9jdW1lbnREQiBtYW5hZ2VtZW50IGNhbGw8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5zbmFwc2hvdCDCtyBwb2ludC1pbi10aW1lIHJlc3RvcmU8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5yZXBsaWNhIMK3IGZhaWxvdmVyIMK3IGdsb2JhbCBjbHVzdGVyPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM2NDc0OGIiPnN0b3AgLyBzdGFydCDCtyBwYXJhbWV0ZXJzPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM2NDc0OGIiPnNhbWUgcmVxdWVzdCAvIHJlc3BvbnNlIHNoYXBlczwvdGV4dD4KPGxpbmUgeDE9IjI1MiIgeTE9Ijc0IiB4Mj0iMzE0IiB5Mj0iNzQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM5NGEzYjgiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLW9jaS1tYW5hZ2VtZW50LWFwaSkiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8cmVjdCB4PSIzMTgiIHk9IjU0IiB3aWR0aD0iMjA0IiBoZWlnaHQ9Ijg4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS43IiBzdHlsZT0iZmlsbDojZWNmZGY1O3N0cm9rZTojMDQ3ODU3Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMDQ3ODU3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSI0MjAiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzA0Nzg1NyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLW9jaS1tYW5hZ2VtZW50LWFwaSkiIHN0eWxlPSJzdHJva2U6Izk0YTNiOCIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItb2NpLW1hbmFnZW1lbnQtYXBpKSIgc3R5bGU9InN0cm9rZTojOTRhM2I4Ii8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojY2JkNWUxIi8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjMGYxNzJhOyBmb250LXNpemU6MTJweCI+T0NJIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzY0NzQ4YiI+YmFja3VwcyDCtyByZXN0b3JlIMK3IHN0b3AgLyBzdGFydDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNjQ3NDhiIj5jb21wdXRlIGFuZCBzdG9yYWdlIHNjYWxpbmc8L3RleHQ+Cjwvc3ZnPg==)

![The Tensor9 service adapter handles DocumentDB management requests using OCI management API and returns DocumentDB responses.](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4MzYiIGhlaWdodD0iMTk2IiB2aWV3Qm94PSIwIDAgODM2IDE5NiIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJUaGUgVGVuc29yOSBzZXJ2aWNlIGFkYXB0ZXIgaGFuZGxlcyBEb2N1bWVudERCIG1hbmFnZW1lbnQgcmVxdWVzdHMgdXNpbmcgT0NJIG1hbmFnZW1lbnQgQVBJIGFuZCByZXR1cm5zIERvY3VtZW50REIgcmVzcG9uc2VzLiI+PHN0eWxlPnRleHR7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsJ1NlZ29lIFVJJyxSb2JvdG8sJ0hlbHZldGljYSBOZXVlJyxBcmlhbCxzYW5zLXNlcmlmO2ZpbGw6I2NiZDVlMX08L3N0eWxlPgo8ZGVmcz48bWFya2VyIGlkPSJhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkiIHZpZXdCb3g9IjAgMCAxMCAxMCIgcmVmWD0iOCIgcmVmWT0iNSIgbWFya2VyV2lkdGg9IjciIG1hcmtlckhlaWdodD0iNyIgb3JpZW50PSJhdXRvLXN0YXJ0LXJldmVyc2UiPjxwYXRoIGQ9Ik0wLDAgTDEwLDUgTDAsMTAgeiIgc3R5bGU9ImZpbGw6IzY0NzQ4YiIvPjwvbWFya2VyPjwvZGVmcz4KPHJlY3QgeD0iMTYiIHk9IjM0IiB3aWR0aD0iMjM2IiBoZWlnaHQ9IjEyOCIgcng9IjEyIiBzdHJva2Utd2lkdGg9IjEuNSIgc3R5bGU9ImZpbGw6IzFlMjkzYjtzdHJva2U6IzQ3NTU2OSIvPgo8dGV4dCB4PSIxMzQiIHk9IjYwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogNjUwIDEzLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogI2YxZjVmOTsgZm9udC1zaXplOjEyLjVweCI+RG9jdW1lbnREQiBtYW5hZ2VtZW50IGNhbGw8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iODIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5zbmFwc2hvdCDCtyBwb2ludC1pbi10aW1lIHJlc3RvcmU8L3RleHQ+Cjx0ZXh0IHg9IjEzNCIgeT0iOTkiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5yZXBsaWNhIMK3IGZhaWxvdmVyIMK3IGdsb2JhbCBjbHVzdGVyPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjExNiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDExcHggSW50ZXIsIHNhbnMtc2VyaWY7IGZpbGw6ICM5NGEzYjgiPnN0b3AgLyBzdGFydCDCtyBwYXJhbWV0ZXJzPC90ZXh0Pgo8dGV4dCB4PSIxMzQiIHk9IjE0MiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwcHggJ1NGIE1vbm8nLCB1aS1tb25vc3BhY2UsICdKZXRCcmFpbnMgTW9ubycsIE1lbmxvLCBtb25vc3BhY2U7IGZpbGw6ICM5NGEzYjgiPnNhbWUgcmVxdWVzdCAvIHJlc3BvbnNlIHNoYXBlczwvdGV4dD4KPGxpbmUgeDE9IjI1MiIgeTE9Ijc0IiB4Mj0iMzE0IiB5Mj0iNzQiIHN0cm9rZS13aWR0aD0iMiIgbWFya2VyLWVuZD0idXJsKCNhaGMtZG9jdW1lbnRkYi1vY2ktbWFuYWdlbWVudC1hcGkpIiBzdHlsZT0ic3Ryb2tlOiM2NDc0OGIiLz4KPGxpbmUgeDE9IjMxOCIgeTE9IjEyOCIgeDI9IjI1NiIgeTI9IjEyOCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLW9jaS1tYW5hZ2VtZW50LWFwaSkiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8cmVjdCB4PSIzMTgiIHk9IjU0IiB3aWR0aD0iMjA0IiBoZWlnaHQ9Ijg4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS43IiBzdHlsZT0iZmlsbDojMDY0ZTNiO3N0cm9rZTojNmVlN2I3Ii8+Cjx0ZXh0IHg9IjQyMCIgeT0iOTQiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA3MDAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjNmVlN2I3OyBmb250LXNpemU6MTJweCI+VGVuc29yOTwvdGV4dD4KICA8dGV4dCB4PSI0MjAiIHk9IjExMiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgc3R5bGU9ImZvbnQ6IDEwLjVweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzZlZTdiNyI+c2VydmljZSBhZGFwdGVyPC90ZXh0Pgo8bGluZSB4MT0iNTIyIiB5MT0iNzQiIHgyPSI1ODQiIHkyPSI3NCIgc3Ryb2tlLXdpZHRoPSIyIiBtYXJrZXItZW5kPSJ1cmwoI2FoYy1kb2N1bWVudGRiLW9jaS1tYW5hZ2VtZW50LWFwaSkiIHN0eWxlPSJzdHJva2U6IzY0NzQ4YiIvPgo8bGluZSB4MT0iNTg4IiB5MT0iMTI4IiB4Mj0iNTI2IiB5Mj0iMTI4IiBzdHJva2Utd2lkdGg9IjIiIG1hcmtlci1lbmQ9InVybCgjYWhjLWRvY3VtZW50ZGItb2NpLW1hbmFnZW1lbnQtYXBpKSIgc3R5bGU9InN0cm9rZTojNjQ3NDhiIi8+CjxyZWN0IHg9IjU4OCIgeT0iMzQiIHdpZHRoPSIyMzIiIGhlaWdodD0iMTI4IiByeD0iMTIiIHN0cm9rZS13aWR0aD0iMS41IiBzdHlsZT0iZmlsbDojMWUyOTNiO3N0cm9rZTojNDc1NTY5Ii8+Cjx0ZXh0IHg9IjcwNCIgeT0iNjIiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiA2NTAgMTMuNXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjZjFmNWY5OyBmb250LXNpemU6MTJweCI+T0NJIG1hbmFnZW1lbnQgQVBJPC90ZXh0Pgo8dGV4dCB4PSI3MDQiIHk9Ijk0IiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBzdHlsZT0iZm9udDogMTFweCBJbnRlciwgc2Fucy1zZXJpZjsgZmlsbDogIzk0YTNiOCI+YmFja3VwcyDCtyByZXN0b3JlIMK3IHN0b3AgLyBzdGFydDwvdGV4dD4KPHRleHQgeD0iNzA0IiB5PSIxMTEiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHN0eWxlPSJmb250OiAxMXB4IEludGVyLCBzYW5zLXNlcmlmOyBmaWxsOiAjOTRhM2I4Ij5jb21wdXRlIGFuZCBzdG9yYWdlIHNjYWxpbmc8L3RleHQ+Cjwvc3ZnPg==)

Tensor9 translates DocumentDB management requests to the backend API and returns DocumentDB responses.

#### Limitations

Where DocumentDB and Autonomous JSON Database differ

* **Manual failover and cross-region standbys are not supported.** Autonomous Data Guard is not available for JSON workloads, so there is no failover or switchover call and no global database. For cross-region disaster recovery, use backup copies, refreshable clones or replication tooling.
* **Replica instances are not supported.** Read scale-out comes from compute auto-scaling (up to 3x), not replicas you add.
* **Most cluster parameters are not supported.** Compute and storage scale online; most DocumentDB cluster parameters have no equivalent.
* **Event subscriptions are not supported.** DocumentDB event notifications publish to SNS. OCI Events works differently and has no direct equivalent.

#### Other considerations

**Migration.** Copy existing data with MongoDB migration tools that the backend supports. Check the workload's queries, indexes and BSON types against the comparison table before switching connections; sharing a wire protocol does not make every MongoDB feature equivalent.

**Operations.** The customer owns the Autonomous Database in their OCI tenancy. Maintenance windows, quotas and pricing are Oracle's.

**Features and capacity.** The comparison table on this page lists feature and high-availability differences. Check the backend's pricing and capacity limits when you size the deployment.

## On Scaleway

### Scaleway Managed MongoDB

| Operation | Area | Support | Depth | Notes |
| - | - | - | - | - |
| collStats | Admin & diagnostics | Supported | Full surface | - |
| dbStats | Admin & diagnostics | Supported | Full surface | - |
| explain | Admin & diagnostics | Supported | Full surface | query plan |
| hello | Admin & diagnostics | Supported | Full surface | topology handshake |
| ping | Admin & diagnostics | Supported | Full surface | - |
| serverStatus | Admin & diagnostics | Supported | Full surface | - |
| delete | CRUD | Supported | Common | - |
| find | CRUD | Supported | Common | - |
| findAndModify | CRUD | Supported | Common | atomic read-modify-write |
| getMore | CRUD | Supported | Common | cursor iteration |
| insert | CRUD | Supported | Common | - |
| killCursors | CRUD | Supported | Most usage | - |
| update | CRUD | Supported | Common | - |
| Change streams (\$changeStream / watch) | Change streams | Supported | Most usage | - |
| collMod | Collections & databases | Supported | Full surface | - |
| create | Collections & databases | Supported | Most usage | capped and time-series collections included - DocumentDB has neither |
| drop | Collections & databases | Supported | Most usage | - |
| dropDatabase | Collections & databases | Supported | Full surface | - |
| listCollections | Collections & databases | Supported | Most usage | - |
| listDatabases | Collections & databases | Supported | Most usage | - |
| renameCollection | Collections & databases | Supported | Full surface | - |
| createIndexes | Indexes | Supported | Most usage | - |
| dropIndexes | Indexes | Supported | Most usage | - |
| listIndexes | Indexes | Supported | Most usage | - |
| Vector search (\$vectorSearch) | Query & aggregation | Out of scope | Full surface | \$vectorSearch is an Atlas product feature rather than a MongoDB 8.0 engine feature, so a DocumentDB origin using vector indexes does NOT find an equivalent here; run a vector store alongside, or choose the Atlas backend |
| aggregate | Query & aggregation | Supported | Common | native MongoDB aggregation; DocumentDB supports \$graphLookup from 8.0 and restricted correlated \$lookup from 8.0.2 |
| count | Query & aggregation | Supported | Common | - |
| distinct | Query & aggregation | Supported | Most usage | - |
| mapReduce | Query & aggregation | Supported | Full surface | supported but deprecated since MongoDB 5.0 |
| Transactions (startTransaction / commit / abort) | Transactions | Supported | Most usage | native multi-document transactions; DocumentDB supports retryable writes from 8.0.2, but retryable writes do not establish transaction retry semantics |

## Install and run

The documentation and SLAs are public. Downloading and running the Cloud Adapter binary requires an entitled customer account. Set `T9_API_KEY` as described in [Install and Authenticate](https://docs.tensor9.com/cloud-adapter-early-access/getting-started/install-and-authenticate.md), then list the adapters your account may use with this origin:

```sh theme={null}
tensor9 adapt svc list \
  -origin aws::1.0.0::docdb::mongodb
```

The result is limited to directed mappings for this origin that your account is entitled to use. Use a returned backend identifier when configuring the adapter or investigating a request.

Request binary access from [hello@tensor9.com](mailto:hello@tensor9.com) if your account does not yet include this direction.

## Existing data and credentials

Selecting a backend does not copy existing data, credentials or access policies. Plan and verify migration separately before changing an application's endpoint. Do not assume an identifier, credential or encrypted value from the origin service works unchanged on the target.

## Configure, tune and debug

Start with [setup](https://docs.tensor9.com/cloud-adapter-early-access/getting-started/overview.md) and [configuration](https://docs.tensor9.com/cloud-adapter-early-access/configuration/overview.md). Use [tuning](https://docs.tensor9.com/cloud-adapter-early-access/tuning/overview.md) to understand supported request tags, [debugging](https://docs.tensor9.com/cloud-adapter-early-access/debugging/overview.md) to investigate a request, and [High Fidelity Cloud Emulators](https://docs.tensor9.com/cloud-adapter-early-access/local-testing/overview.md) to validate a bounded reproduction.

For requests that go through an entitled service adapter, use [tensor9 explain](https://docs.tensor9.com/cloud-adapter-early-access/debugging/explain.md) and [x-t9-explain](https://docs.tensor9.com/cloud-adapter-early-access/debugging/response-headers.md) to inspect the selected mapping.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.