Quotas and limits
This page describes the request quotas and limits for Firestore with MongoDB compatibility.
Free tier usage
Firestore with MongoDB compatibility offers a free tier that lets you get started with Firestore with MongoDB compatibility at no cost. The free tier amounts are listed in the following table.
Free tier amounts are applied daily and reset at midnight Pacific time.
The free tier applies to only one Firestore with MongoDB compatibility database per project. The first database that is created in a project without a free tier database will get the free tier. If the database with the free tier applied is deleted, the next database created will receive the free tier.
Free tier | Quota |
---|---|
Stored data | 1 GiB |
Read units | 50,000 per day |
Write units | 40,000 per day |
Outbound data transfer | 10 GiB per month |
The following operations and features don't include free usage. You must enable billing to use these features:
- Managed deletes (TTL)
- Backup data
- Restore operations
For more information about how these features are billed, see Storage pricing .
Standard limits
The following tables show the limits that apply to Firestore with MongoDB compatibility. These are hard limits unless otherwise noted.
Databases
Limit | Details |
---|---|
Maximum number of databases per project | 100 Contact support to request an increase to this limit. |
Maximum number of customer-managed encryption keys (CMEK) databases per project | 0 By default the quota is 0 because this feature is behind an allowlist. You can request to increase the quota by filling in the CMEK access request form . |
Collections, documents, and fields
- Must be valid UTF-8 characters
- Must be no longer than 1,500 bytes
- Can't match the regular expression
__.*__
- Can't contain
$
- Can't be the empty string (
""
) - Can't contain the null character
- Can't begin with `system.` and can't contain `.system.`.
_id
)- Document
_id
(top-level field) must be an ObjectId, String, 64-bit integer, 32-bit integer, Double, or Binary. Other BSON types are not supported. - Must be no longer than 1,500 bytes
-
For String IDs:
- Must be valid UTF-8 characters
- Can't be the empty string (
""
) - Can't match the regular expression
__.*__
- For 64-bit integer IDs, 64-bit 0 (0L) is not supported.
- Must be valid UTF-8 characters
- Can't be the empty string (
""
) - Can't match the regular expression
__.*__
20
Map and array fields add one level to the overall depth of an object. For example, the following object has a total depth of three levels:
{ nested_object: { #depth 1 nested_array: [ #depth 2 { foo: "bar" #depth 3 } ] } }
Reads, writes, and transactions
Limit | Details |
---|---|
Memory limit for a query | 128 MiB |
Time limit for a transaction | 270 seconds, with a 60-second idle expiration time |
Indexes
Limit | Details |
---|---|
Maximum number of indexes for a database | 1000 Contact support to request an increase to this limit. |
Maximum number of index entries for each document |
40,000 |
Maximum number of fields in an index | 100 |
Maximum size of an index entry | 7.5 KiB |
Maximum sum of the sizes of a document's index entries | 8 MiB |
Time to live (TTL)
Limit | Details |
---|---|
Maximum number of TTL configurations for a database | 500 |