ストレージ サイズの計算
このページでは、MongoDB 互換の Firestore のドキュメント、フィールド、インデックス エントリのストレージ サイズについて説明します。
このストレージの費用については、料金ページをご覧ください。
文字列のサイズ
文字列のサイズは、UTF-8 でエンコードされたバイト数 + 1 の値として計算されます。
以下は、文字列として保存されます。
- コレクション名
 - フィールド名
 - 文字列フィールドの値(
_idを含む) 
次に例を示します。
- コレクション名 
tasksには、5 バイト + 1 バイト、合計 6 バイトが使用されます。 - フィールド名 
descriptionには 11 バイト + 1 バイト、合計 12 バイトが使用されます。 
フィールド値のサイズ
次の表に、フィールド値のサイズを型別に示します。
| タイプ | サイズ | 
|---|---|
| 配列 | 各値のサイズの合計 | 
| ブール値 | 1 バイト | 
| バイナリデータ | 非ジェネリック(0 以外)のサブタイプの場合はバイト長 + 1 | 
| 日付 | 8 バイト | 
| Double | 8 バイト | 
| Double128 | 16 バイト | 
| 32 ビット整数 | 4 バイト | 
| 64 ビット整数(long) | 8 バイト | 
| オブジェクト | 各フィールド名の文字列サイズと、埋め込みオブジェクト内の各フィールド値のサイズの合計 | 
| Min Key | 1 バイト | 
| Max Key | 1 バイト | 
| Null | 1 バイト | 
| 正規表現 | (パターンの長さ + 1)+(オプションの長さ + 1) | 
| タイムスタンプ | 8 バイト | 
| 文字列 | UTF-8 でエンコードされたバイト数 + 1 | 
たとえば、done という名前のブール値フィールドは 6 バイトを使用します。
doneフィールド名に 5 バイト- ブール値に 1 バイト
 
ドキュメントのサイズ
ドキュメントのサイズは以下の合計値となります。
次に、コレクション 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
 - フィールドに 71 バイト
 - 追加の 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 バイト
 
スパース インデックスの場合、ドキュメントにフィールドが含まれていないと、インデックス エントリは作成されません。ドキュメントにインデックス付きフィールドが 1 つ以上含まれている場合、存在しないインデックス付きフィールドが NULL に設定されたインデックス エントリが作成されます。
次のステップ
料金の詳細について学ぶ。