> For the complete MongoDB documentation index, see www.mongodb.com/docs/llms.txt

# Atlas Flex Limitations

## Configuration Limits

The following table lists the configuration limits of Atlas Flex clusters:

| Configuration Option | Limit |
| --- | --- |
| Cloud Service Provider and Region | You can deploy Flex clusters only in a subset of regions on AWS (Amazon Web Services), Google Cloud, and Azure (Microsoft Azure). To learn more about supported cloud provider regions for Flex clusters, see: [Amazon Web Services (AWS)](https://www.mongodb.com/docs/atlas/reference/amazon-aws.md#std-label-amazon-aws); [Google Cloud Platform (GCP)](https://www.mongodb.com/docs/atlas/reference/google-gcp.md#std-label-google-gcp); [Microsoft Azure](https://www.mongodb.com/docs/atlas/reference/microsoft-azure.md#std-label-microsoft-azure) |
| MongoDB Version and Storage Engine | Atlas uses at least MongoDB 8.0 for Flex clusters. |
| MongoDB Version Upgrade | You can't upgrade the MongoDB version that Flex clusters run. Atlas upgrades Flex clusters to the newest MongoDB version after several patch versions become available for that version. To learn more, see [MongoDB Versioning.](https://www.mongodb.com/docs/manual/reference/versioning/) |
| Cluster Memory | You can't configure memory for Flex clusters. |
| Cluster Storage | You can't configure storage size for Flex clusters. |
| Replica Set Tags | Flex clusters don't have pre-defined [replica set tags.](https://www.mongodb.com/docs/atlas/reference/replica-set-tags.md#std-label-replica-set-tags) |
| Private Endpoints | Flex clusters don't support [Private Endpoints](https://www.mongodb.com/docs/atlas/security-private-endpoint.md#std-label-private-endpoint-overview). If your workloads require [Private Endpoints](https://www.mongodb.com/docs/atlas/security-private-endpoint.md#std-label-private-endpoint-overview), we recommend that you switch to Atlas Dedicated clusters. |
| Continuous Backup and Point-in-Time Restore | Flex clusters don't support [Continuous Backup and Point-in-Time Restore](https://www.mongodb.com/docs/atlas/backup/cloud-backup/dedicated-cluster-backup.md#std-label-pit-restore). If your workloads require [Continuous Backup and Point-in-Time Restore](https://www.mongodb.com/docs/atlas/backup/cloud-backup/dedicated-cluster-backup.md#std-label-pit-restore), we recommend that you switch to Atlas Dedicated clusters. |
| Sharded Clusters | You can't deploy a Flex cluster as a Sharded Cluster. |
| Test Primary Failovers | You can't perform primary failover testing on Flex clusters. |
| Simulate Regional Outage | You can't perform regional outage testing on Flex clusters. |
| Database Auditing | You can't configure [database auditing](https://www.mongodb.com/docs/atlas/database-auditing.md#std-label-set-up-database-auditing) on Flex clusters. |
| Encryption at Rest using your Key Management | You can't configure [encryption at Rest using Customer Key Management](https://www.mongodb.com/docs/atlas/security-kms-encryption.md#std-label-security-kms-encryption) Flex clusters. |
| Network Peering Connections | You can't configure [network peering connections](https://www.mongodb.com/docs/atlas/security-vpc-peering.md#std-label-vpc-peering) on Flex clusters. |
| Access Tracking | You can't view the database access history for Flex clusters. |
| Maintenance Windows | Project-level [maintenance window](https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md#std-label-configure-maintenance-window) configuration doesn't apply to Flex clusters. Atlas manages maintenance windows for Flex clusters automatically. |
| Dedicated Nodes for Workload Isolation | Atlas Flex clusters don't support configuring dedicated [analytics](https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution.md#std-label-deploy-analytics-nodes) nodes, [search](https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution.md#std-label-configure-search-nodes) nodes, or other workload-isolation nodes. You can configure dedicated nodes only on `M10+` clusters. |

For general guidance on MongoDB version numbering, release types, and upgrade paths, see [MongoDB Versions and Upgrade Paths.](https://www.mongodb.com/docs/mongodb-versions.md#std-label-versions-and-upgrade-paths)

## Operational Limits

The following table lists the operational limits of Atlas Flex clusters:

| Operation | Limit |
| --- | --- |
| [Aggregation](https://www.mongodb.com/docs/manual/aggregation/) and [Queries](https://www.mongodb.com/docs/manual/tutorial/query-documents/) | Flex clusters don't support the `allowDiskUse` option for the [aggregation command](https://www.mongodb.com/docs/manual/reference/command/aggregate/), its [helper method](https://www.mongodb.com/docs/manual/reference/method/db.collection.aggregate/), or the [cursor.allowDiskUse()](https://www.mongodb.com/docs/manual/reference/method/cursor.allowDiskUse/#mongodb-method-cursor.allowDiskUse) query cursor method. Aggregation pipelines on Flex clusters can have a maximum of 50 stages. Aggregation pipelines on Flex clusters don't support: [`$currentOp`](https://www.mongodb.com/docs/manual/reference/operator/aggregation/currentOp.md#mongodb-pipeline-pipe.-currentOp), [`$listLocalSessions`](https://www.mongodb.com/docs/manual/reference/operator/aggregation/listLocalSessions.md#mongodb-pipeline-pipe.-listLocalSessions), [`$listSessions`](https://www.mongodb.com/docs/manual/reference/operator/aggregation/listSessions.md#mongodb-pipeline-pipe.-listSessions), or [`$planCacheStats`](https://www.mongodb.com/docs/manual/reference/operator/aggregation/planCacheStats.md#mongodb-pipeline-pipe.-planCacheStats) stages.; The [$$USER_ROLES](https://www.mongodb.com/docs/manual/reference/aggregation-variables/#mongodb-variable-variable.USER_ROLES) system variable. |
| Atlas Alerts | Flex clusters can only trigger alerts configured with one of the following [alert conditions:](https://www.mongodb.com/docs/atlas/reference/alert-conditions.md#std-label-alert-conditions) Connections; Logical Size; Network; Opscounter |
| Atlas Monitoring | The Metrics view of a Flex cluster displays only the following metrics: Connections; Logical Size; Network; Opscounter To learn more, see [Real Time Metrics.](https://www.mongodb.com/docs/atlas/real-time-performance-panel.md#std-label-real-time-metrics-status-tab) |
| Authentication | Flex clusters support the following authentication methods only: Password (SCRAM-SHA1); X.509 Certificates; AWS IAM |
| Auto-Expand Storage | Flex clusters don't provide [automatically scaling storage.](https://www.mongodb.com/docs/atlas/cluster-autoscaling.md#std-label-cluster-autoscaling) |
| BSON (Binary Javascript Object Notation) Nested Object Depth | Flex clusters can store documents with a maximum of 50 nested levels. |
| Build Index with Rolling Build | Flex clusters don't support [building indexes with a rolling build.](https://www.mongodb.com/docs/manual/tutorial/build-indexes-on-replica-sets/) |
| Change Streams Filtering | For Flex clusters, you can use only strings and regular expressions in filters on database names (namespace `ns` fields) in [change streams](https://www.mongodb.com/docs/manual/changeStreams/). You can't use commands, such as `$in`, in database namespace filters. This limit doesn't apply to filtering on collection names in change streams. |
| Command Line Tools | For Flex clusters, you can't run [`mongorestore`](https://www.mongodb.com/docs/database-tools/mongorestore.md#mongodb-binary-bin.mongorestore) or [`mongodump`](https://www.mongodb.com/docs/database-tools/mongodump.md#mongodb-binary-bin.mongodump) on the `admin` database. If you use the `--db` option to set the destination database to `admin`, the program returns an error. |
| Connections | Flex clusters have a maximum of 500 connections. |
| Cursors | Flex clusters can't use the [noTimeout cursor option.](https://www.mongodb.com/docs/manual/reference/method/cursor.addOption/#flags) |
| Custom Roles | Changes to [custom roles](https://www.mongodb.com/docs/atlas/security-add-mongodb-roles.md#std-label-mongodb-roles) might take up to 30 seconds to deploy in Flex clusters. |
| Database and Collections | Flex clusters have a maximum of 100 databases and a total of 500 collections. |
| Database Commands | Certain database commands are unsupported or behave differently on Flex clusters. To learn more, see [Unsupported Commands in Atlas](https://www.mongodb.com/docs/atlas/unsupported-commands.md#std-label-unsupported-commands). For questions or comments related to restricted commands, [contact support.](https://www.mongodb.com/docs/atlas/support.md#std-label-request-support) |
| Access to Collections in `local`, `admin`, and `config` Databases | Flex clusters don't allow: Read access to any collection in the `local` database with the exception of read access to the oplog.You must precede a [`$regex`](https://www.mongodb.com/docs/manual/reference/operator/query/regex.md#mongodb-query-op.-regex) query on an [oplog](https://www.mongodb.com/docs/manual/reference/glossary.md#std-term-oplog) in a Free cluster or a Flex cluster with a carat (`^`). Otherwise, the following error occurs:`MongoServerError: Oplog ns RegEx queries must begin with ^`; Write access to any collection in the `local` and `config` databases.; Read or write access to any collection in the `admin` database. Atlas issues an error similar to the following if you attempt to read or write to collections in these databases: `command <cmd name> is not allowed in this Atlas tier
(Unauthorized) not authorized on <db name> to execute command <cmd name>` |
| Database Logs | Flex clusters don't allow you to download logs. |
| Data Recovery | Custom policies are not supported for Flex cluster snapshots. Atlas always takes a single daily snapshot at the same time, starting 24 hours after the cluster was created.If you require finer-grained backups, consider scaling up to an `M10` or larger cluster tier.; On-demand snapshots are not supported for Flex clusters.; You can't restore Flex cluster snapshots to a sharded cluster. You can only restore Flex cluster snapshots to replica sets. |
| Data Storage | Flex clusters limit the maximum total data storage space to 5 GB. Data storage space includes the number of bytes of all uncompressed BSON documents stored in all collections, plus the bytes stored in their associated indexes. |
| JavaScript | Flex clusters don't support server-side JavaScript. For example, [$where](https://www.mongodb.com/docs/manual/reference/operator/query/where/) and [map-reduce](https://www.mongodb.com/docs/manual/core/map-reduce/) are unsupported. |
| Namespaces and Database Names | Flex cluster namespaces are limited to 95 bytes. Database names are limited to 38 bytes. |
| Performance Advisor | Flex clusters don't provide access to the [Performance Advisor.](https://www.mongodb.com/docs/atlas/performance-advisor.md#std-label-pa-slow-queries) |
| Query Utilization | The percentage of time that a query is running over any five minute period must remain under 100% on Flex clusters. |
| Real-Time Performance Panel | Flex clusters don't provide access to the [Real-Time Performance Panel.](https://www.mongodb.com/docs/atlas/real-time-performance-panel.md#std-label-real-time-metrics-status-tab) |
| Sort in Memory | Flex clusters limits sort in-memory to 32 MB. |
| Throughput | Flex clusters limit the number of read and write operations to 500 operations per second. Atlas handles clusters that exceed the operations per second rate limit as follows: Atlas triggers a sub-second cooldown period before resuming the cluster's operations on a given connection. If the queue is greater than the operations per second limit, operations might wait for more than a second in the queue.; If the number of operations per second drops below the rate limit threshold, Atlas resumes processing of the queued operations on each connection before processing any new operations on that connection. |

## Driver Minimum Requirements

| Driver | Description |
| --- | --- |
| Drivers that use a JRE (Java Runtime Environment) or JDK (Java Development Kit) | Due to an issue with TLS (Transport Layer Security) 1.3 support in the Java JDK (Java Development Kit) ([JDK-8236039](https://bugs.openjdk.java.net/browse/JDK-8236039)), upgrade the JDK (Java Development Kit) that supports the driver you use to connect to Atlas. Minimum versions of the JDK (Java Development Kit) include: 14u-cpu: [JDK-8249107](https://bugs.openjdk.java.net/browse/JDK-8249107); 14.0.2: [JDK-8247954](https://bugs.openjdk.java.net/browse/JDK-8247954); 13.0.3: [JDK-8241515](https://bugs.openjdk.java.net/browse/JDK-8241515); 11.0.8-oracle: [JDK-8238504](https://bugs.openjdk.java.net/browse/JDK-8238504); 11.0.7: [JDK-8237387](https://bugs.openjdk.java.net/browse/JDK-8237387); 8u261: [JDK-8243759](https://bugs.openjdk.java.net/browse/JDK-8243759); emb-8u261: [JDK-8247097](https://bugs.openjdk.java.net/browse/JDK-8247097) To learn more about support for TLS (Transport Layer Security) 1.3 in Java-based languages, libraries, and drivers, see: [MongoDB Java, Reactive Streams, and Scala Drivers](https://mongodb.github.io/mongo-java-driver/); [Scala](https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html); [Kafka](https://kafka.apache.org/documentation/#java) |
