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.

Collections, documents, and fields

Limit Details
Constraints on collection names
  • 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.`.
Constraints on document IDs (_id)
  • Document _id (top-level field) must be an ObjectId, String, or 64-bit integer. 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.
Maximum size for a document 4 MiB
Constraints on field names
  • Must be valid UTF-8 characters
  • Can't be the empty string ("")
  • Can't match the regular expression __.*__
Maximum size of a field name 1,500 bytes
Maximum size of a field path 1,500 bytes
Maximum size of a field value 4 MiB - 89 bytes
Maximum depth of fields in a map or array

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

500

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