使用 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 |
位元組順序 |
您也可以使用 struct
或 slice
匯總屬性。詳情請參閱 Datastore 參考資料。
當查詢的屬性具有混合類型的值時,Datastore 會根據內部表示法使用確定性排序:
- 空值
- 固定點數
- 整數
- 日期和時間
- 布林值
- 位元組序列
- 位元組切割 (短)
- Unicode 字串
- Blobstore 索引鍵
- 浮點數
- 地理點
- Datastore 索引鍵
由於長位元組切割和長字串不會建立索引,因此未定義排序。