现已推出具有 MongoDB 兼容性的 Firestore 企业版!
了解详情。
儲存空間大小
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
僅適用於 Cloud Firestore Enterprise 版。
|
本頁面說明文件、欄位和索引項目在與 MongoDB 相容的 Cloud Firestore 中的儲存空間大小。
您可以在「定價」頁面查詢這類儲存空間的費用。
字串大小
字串大小按 UTF-8 編碼位元組的數目 + 1 計算。
以下均以字串形式儲存:
例如:
- 集合名稱「
tasks
」使用 5 個位元組 + 1 個位元組,共 6 個位元組。
- 欄位名稱
description
使用 11 個位元組 + 1 個位元組,共 12 個位元組。
欄位值大小
下表依類型顯示欄位值的大小。
類型 |
大小 |
陣列 |
其值的大小總和 |
布林值 |
1 個位元組 |
二進位資料 |
非泛型 (非 0) 子類型的位元組長度 + 1 |
日期 |
8 個位元組 |
雙人床 |
8 個位元組 |
Double128 |
16 個位元組 |
32 位元整數 |
4 個位元組 |
64 位元整數 (長整數) |
8 個位元組 |
物件 |
內嵌物件中每個欄位名稱的字串大小,以及每個欄位值的字串大小總和 |
Min Key |
1 個位元組 |
最大鍵 |
1 個位元組 |
空值 |
1 個位元組 |
規則運算式 |
(模式長度 + 1) + (選項長度 + 1) |
時間戳記 |
8 個位元組 |
字串 |
UTF-8 編碼位元組數目 + 1 |
舉例來說,名為 done
的布林值欄位會使用 6 個位元組:
done
欄位名稱佔 5 個位元組
- 布林值佔 1 個位元組
文件大小
文件大小是以下幾項的總和:
- 集合名稱的字串大小
- 每個欄位名稱 (
_id
除外) 的字串大小總和
- 每個欄位值的大小總和 (包括
_id
)
- 額外 48 個位元組
以下是集合 tasks
中文件的範例:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
欄位的總大小是 78 個位元組:
欄位名稱和值 |
欄位大小 (以位元組為單位) |
"_id": "my_task_id" |
欄位字串值佔 11 個 |
"type": "Personal" |
14 5 個字元 (欄位名稱) + 9 個字元 (欄位字串值) |
"done": false |
6 5 個欄位名稱 + 1 個欄位布林值 |
"priority": 1 |
17 欄位名稱佔 9 個 + 欄位的 32 位元整數值佔 4 個 |
"description": "Learn Cloud Firestore" |
34 欄位名稱佔 12 個 + 欄位字串值佔 22 個 |
因此,文件大小是 6 + 78 + 48 = 132 個位元組:
- 6 代表集合名稱
- 欄位佔 78 個位元組
- 額外 48 個位元組
索引項目大小
索引中索引項目的大小是以下幾項的總和:
- 集合名稱的字串大小
_id
欄位值的大小
- 索引欄位值的總和
- 額外 48 個位元組
假設 tasks
集合中有一份文件:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
如果 done
和 priority
欄位都有索引 (皆為遞增),此索引中的索引項目總大小為 70 個位元組:
- 集合名稱
tasks
佔 6 個位元組
_id
欄位值佔 11 個位元組
- 布林值欄位值佔 1 個位元組
- 32 位元整數字段值佔 4 個位元組
- 額外 48 個位元組
如果是稀疏索引,如果文件未包含任何欄位,系統就不會建立索引項目。如果文件包含至少一個已建立索引的欄位,系統就會建立索引項目,並將缺少的已建立索引欄位設為 NULL
。
後續步驟
瞭解定價。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-29 (世界標準時間)。
[null,null,["上次更新時間:2025-08-29 (世界標準時間)。"],[],[],null,["\u003cbr /\u003e\n\n\n|--------------------------------------------------------|\n| *Relevant to Cloud Firestore Enterprise edition only.* |\n\n\u003cbr /\u003e\n\nThis page describes the storage size of documents, fields, and\nindex entries in Cloud Firestore with MongoDB compatibility.\n\nYou can learn about the costs of this storage at the [Pricing](https://firebase.google.com/pricing) page.\n\nString size\n\nString sizes are calculated as the number of [UTF-8 encoded](https://en.wikipedia.org/wiki/UTF-8) bytes + 1.\n\nThe following are stored as strings:\n\n- Collection name\n- Field names\n- String field values (including `_id`)\n\nFor example:\n\n- The collection name `tasks` uses 5 bytes + 1 byte, for a total of 6 bytes.\n- The field name `description` uses 11 bytes + 1 byte, for a total of 12 bytes.\n\nField value size\n\nThe following table shows the size of field values by type.\n\n| Type | Size |\n|-----------------------|---------------------------------------------------------------------------------------------------------|\n| Array | The sum of the sizes of its values |\n| Boolean | 1 byte |\n| Binary data | Byte length + 1 for a non-generic (non-0) subtype |\n| Date | 8 bytes |\n| Double | 8 bytes |\n| Double128 | 16 bytes |\n| 32-bit integer | 4 bytes |\n| 64-bit integer (long) | 8 bytes |\n| Object | The sum of the string sizes of each field name and the sizes of each field falue in the embedded object |\n| Min Key | 1 byte |\n| Max Key | 1 byte |\n| Null | 1 byte |\n| Regular expression | (Pattern length + 1) + (Options length + 1) |\n| Timestamp | 8 bytes |\n| String | Number of UTF-8 encoded bytes + 1 |\n\nFor example, a boolean field named `done` would use 6 bytes:\n\n- 5 bytes for the `done` field name\n- 1 byte for the boolean value\n\nDocument size\n\nThe size of a document is the sum of:\n\n- The [string size](#string-size) of the collection name\n- The sum of the [string size](#string-size) of each field name (except `_id`)\n- The sum of the size of each [field value](#field-size) (including `_id`)\n- 48 additional bytes\n\nThis example is for a document in collection `tasks`: \n\n {\n \"_id\": \"my_task_id\",\n \"type\": \"Personal\",\n \"done\": false,\n \"priority\": 1,\n \"description\": \"Learn Cloud Firestore\"\n }\n\nThe total size of the fields is 78 bytes:\n\n| Field name and value | Field size in bytes |\n|------------------------------------------|------------------------------------------------------------------|\n| `\"_id\": \"my_task_id\"` | 11 for the field's string value |\n| `\"type\": \"Personal\"` | 14 5 for the field name + 9 for the field's string value |\n| `\"done\": false` | 6 5 for the field name + 1 for the field's boolean value |\n| `\"priority\": 1` | 17 9 for the field name + 4 for the field's 32-bit integer value |\n| `\"description\": \"Learn Cloud Firestore\"` | 34 12 for the field name + 22 for the field's string value |\n\nSo the document size is 6 + 78 + 48 = 132 bytes:\n\n- 6 for the collection name\n- 78 bytes for the fields\n- 48 additional bytes\n\nIndex entry size\n\nThe size of an index entry in an index is the sum of:\n\n- The [string size](#string-size) of the collection name\n- The size of the `_id` field value\n- The sum of the indexed [field values](#field-size)\n- 48 additional bytes\n\nConsider a document in the `tasks` collection: \n\n {\n \"_id\": \"my_task_id\",\n \"type\": \"Personal\",\n \"done\": false,\n \"priority\": 1,\n \"description\": \"Learn Cloud Firestore\"\n }\n\nFor an index on the `done` and\n`priority` fields (both ascending), the total size of the index entry in this\nindex is 70 bytes:\n\n- 6 bytes for the collection name `tasks`\n- 11 bytes for the `_id` field value\n- 1 byte for the boolean field value\n- 4 bytes for the 32-bit integer field value\n- 48 additional bytes\n\nFor sparse indexes, if a document doesn't include any of the fields,\nthen no index entry is created. If a document contains at least one of the\nindexed fields, an index entry is created with absent indexed fields\nset to `NULL`.\n\nWhat's next\n\nLearn about [pricing](https://firebase.google.com/pricing)."]]