實體屬性參考資料

使用 Datastore 模式的 Firestore 支援各種屬性值的資料類型。其中包括:

  • 整數
  • 浮點數
  • 字串
  • 日期
  • 二進位資料

如需這些類型的完整清單,請參閱「屬性和值類型」一節。

屬性和值類型

與實體相關聯的資料值由一或多個「屬性」組成。每個屬性都有一個名稱及一或多個值。一個屬性可能會有多個類型的值,而兩個實體的相同屬性可能會有不同類型的值。屬性可能已建立索引或未建立索引 (排序或篩選屬性「P」的查詢將忽略「P」未建立索引的實體)。一個實體最多可有 20,000 個已建立索引的屬性。

支援的值類型如下:

值類型 Go 類型 排序順序 附註
整數 int
int8
int16
int32
int64
數字 64 位元整數,帶正負號
浮點數 float32
float64
數字 64 位元雙精度,
IEEE 754
布林值 bool false<true
字串 (短) string Unicode
最多 1500 個位元
字串 (長) string (含 noindex) 最多 1 MB

未建立索引
位元組切割 (短) datastore.ByteString 位元組順序 最多 1500 個位元
位元切割 (長) []byte 最多 1 MB

未建立索引
日期與時間 time.Time 依時間順序
地理點 appengine.GeoPoint 依照緯度、
然後經度
Datastore 索引鍵 *datastore.Key 依路徑元素
(種類、ID、
種類、ID...)
Blobstore 金鑰 appengine.BlobKey 位元組順序

您也可以使用 structslice 匯總屬性。詳情請參閱 Datastore 參考資料

當查詢的屬性具有混合類型的值時,Datastore 會根據內部表示法使用確定性排序:

  1. 空值
  2. 固定點數
    • 整數
    • 日期和時間
  3. 布林值
  4. 位元組序列
    • 位元組切割 (短)
    • Unicode 字串
    • Blobstore 索引鍵
  5. 浮點數
  6. 地理點
  7. Datastore 索引鍵

由於長位元組切割和長字串不會建立索引,因此未定義排序。