實體屬性參考資料

Datastore 模式的 Firestore (Datastore) 支援各種屬性值的資料類型。包括:

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

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

屬性和值類型

與實體相關聯的資料值由一或多個「屬性」組成。 每個屬性都有一個名稱及一或多個值。一個屬性可能會有多個類型的值,而兩個實體的相同屬性可能會有不同類型的值。屬性可能已建立索引或未建立索引 (排序或篩選屬性「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 鍵

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