Datastore 模式的 Firestore (Datastore) 支援各種屬性值的資料類型。包括:
- 整數
- 浮點數
- 字串
- 日期
- 二進位資料
如需這些類型的完整清單,請參閱 「屬性和值類型」一節。
屬性和值類型
與實體相關聯的資料值由一或多個「屬性」組成。 每個屬性都有一個名稱及一或多個值。一個屬性可能會有多個類型的值,而兩個實體的相同屬性可能會有不同類型的值。屬性可能已建立索引或未建立索引 (排序或篩選屬性「P」的查詢將忽略「P」未建立索引的實體)。一個實體最多可有 20,000 個已建立索引的屬性。
| 值類型 | Go 類型 | 排序順序 | 附註 |
|---|---|---|---|
| 整數 | intint8int16int32int64 |
數字 | 64 位元整數,帶正負號 |
| 浮點數 | float32float64 |
數字 | 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 鍵
因為 長位元組切片和長字串 不會建立索引,因此未定義排序。