支援的資料類型

本頁面說明 Firestore 支援的資料類型。

資料類型

下表列出 Firestore 支援的資料類型。此外,也說明比較相同類型的值時,所使用的排列順序:

資料類型 排列順序 附註
32 位元整數 數字

32 位元,有符號

注意:僅支援 Enterprise 版。

64 位元整數 數字 64 位元,有正負號
陣列 依元素值

在 Standard 版本資料庫中,陣列不得包含其他陣列值做為元素。在 Enterprise 版資料庫中,陣列可以包含陣列值做為其中一個元素。

在陣列中,元素會維持指派的位置。 排序兩個以上的陣列時,系統會根據陣列的元素值排序。

比較兩個陣列時,系統會比較每個陣列的第一個元素。如果第一個元素相同,則會比較第二個元素,以此類推,直到找出差異為止。如果陣列沒有可比較的元素,但到該點為止都相等,則較短的陣列會排在較長的陣列之前。

例如 [1, 2, 3] < [1, 2, 3, 1] < [2]。陣列 [2] 的第一個元素值最大。陣列 [1, 2, 3] 的元素與 [1, 2, 3, 1] 的前三個元素相同,但長度較短。

布林值 false < true —
BSON 時間戳記 依時間順序

由 Unix 秒數和遞增計數器組成的 64 位元時間戳記值。

注意:僅支援 Enterprise 版。

位元組數 位元組順序 在 Standard 版本的資料庫中,值不得超過 1,048,487 個位元組 (1 MiB - 89 個位元組),且查詢只會考量前 1,500 個位元組。在 Enterprise 版資料庫中,值的大小沒有限制 (文件和索引項目大小限制除外),且查詢會考量完整值。
含子類型的位元組 位元組順序 (子類型,然後是值)

二進位位元組序列,含有 BSON 子類型指標。

注意:僅支援 Enterprise 版。

日期與時間 依時間順序 儲存在 Firestore 時,精確度僅限微秒;任何額外的精確度都會無條件捨去。
Decimal128 數字

128 位元十進位浮點數,用於高精度算術。

注意:僅支援 Enterprise 版。

浮點數 數字 根據 IEEE 754 標準,採用 64 位元雙精度,包括 (正規化) NaN 和 +/-Infinity。
地理點 先依照緯度,然後依照經度 如要根據距離搜尋,請參閱「地理空間搜尋」。
地圖 先依鍵,再依值

代表嵌入文件中的物件。建立索引後,您就可以查詢子欄位。如果將這個值從索引中排除,所有子欄位也會從索引中排除。

鍵一律會排序。舉例來說,如果您寫入 {c: "foo", a: "bar", b: "qux"},對應會依鍵排序,並儲存為 {a: "bar", b: "qux", c: "foo"}。

對應欄位會依鍵排序,並依鍵/值組合進行比較,先比較鍵,再比較值。如果第一組鍵/值組合相等,系統會比較下一組鍵/值組合,直到找出差異為止。如果兩個對應的所有鍵/值組合都相同,則會考量對應長度。舉例來說,下列對應關係是按照遞增順序排列:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

Max 鍵 無

特殊值,比所有其他值都高。

注意:僅支援 Enterprise 版。

最小鍵 無

特殊值,比所有其他值 (空值除外) 都小。

注意:僅支援 Enterprise 版。

空值 無 —
ObjectId 位元組順序

12 位元組的物件 ID。

注意:僅支援 Enterprise 版。

參考資料 依路徑元素 (集合、文件 ID、集合、文件 ID...) 例如:projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]。
規則運算式 先依模式,再依選項

規則運算式模式和選項。

注意:僅支援 Enterprise 版。

文字字串 UTF-8 編碼位元組順序 在 Standard 版本的資料庫中,值不得超過 1,048,487 個位元組 (1 MiB - 89 個位元組),且查詢只會考量前 1,500 個位元組。在 Enterprise 版資料庫中,值的大小沒有限制 (文件和索引項目大小限制除外),且查詢會考量完整值。
向量 先依維度,再依個別元素值 支援的嵌入維度上限為 2048。如要儲存維度較大的向量,請使用降維。

值類型排序

如果查詢涉及含有混合類型值的欄位,Firestore 會根據內部表示法使用確定性排序。順序如下:

  1. 空值
  2. 最小鍵值 (僅限 Enterprise 版)
  3. 布林值
  4. 64 位元整數和浮點值,依數值順序排序。Enterprise 版資料庫也包含 32 位元整數和 Decimal128 值。
  5. 日期值
  6. 文字字串值
  7. 位元組值。在 Enterprise 版本中,含有子類型值的位元組也會納入計算。
  8. Firestore 參考資料
  9. ObjectId 值 (僅限 Enterprise 版)
  10. 地理位置點值
  11. 規則運算式 (僅限 Enterprise 版)
  12. 陣列值
  13. 向量嵌入
  14. 對應值
  15. 鍵/值數量上限 (僅限 Enterprise 版)

數字排序

Firestore 會將所有數值 (Integer 和 Floating point) 交錯排序。浮點比較遵循 IEEE 754 的總排序,但有一個明顯的例外,那就是 Firestore 會將所有 NaN 值正規化,並將其視為小於 -Infinity。