Firestore in modalità Datastore (Datastore) supporta diversi tipi di dati per i valori delle proprietà. Tra questi, figurano:
- Numeri interi
- Numeri in virgola mobile
- Stringhe
- Date
- Dati binari
Per un elenco completo dei tipi, consulta Proprietà e tipi di valori.
Proprietà e tipi di valori
I valori dei dati associati a un'entità sono costituiti da una o più proprietà. Ogni proprietà ha un nome e uno o più valori. Una proprietà può avere valori di più di un tipo e due entità possono avere valori di tipi diversi per la stessa proprietà. Le proprietà possono essere indicizzate o non indicizzate (le query che ordinano o filtrano in base a una proprietà P ignorano le entità in cui P non è indicizzata). Un'entità può avere al massimo 20.000 proprietà indicizzate.
Sono supportati i seguenti tipi di valori:
| Tipo di valore | Tipi di Go | Ordinamento | Note |
|---|---|---|---|
| Numero intero | intint8int16int32int64 |
Numerico | Numero intero a 64 bit, con segno |
| Numero in virgola mobile | float32float64 |
Numerico | Doppia precisione a 64 bit, IEEE 754 |
| Booleano | bool |
false<true |
|
| Stringa (breve) | string |
Unicode |
Fino a 1500 byte |
| Stringa (lunga) | string (con noindex) |
Nessuno | Fino a 1 megabyte Non indicizzato |
| Byte slice (breve) | datastore.ByteString |
Ordine dei byte | Fino a 1500 byte |
| Byte slice (lungo) | []byte |
Nessuno | Fino a 1 megabyte Non indicizzato |
| Data e ora | time.Time |
Cronologica | |
| Punto geografico | appengine.GeoPoint |
Per latitudine, poi per longitudine |
|
| Chiave Datastore | *datastore.Key |
Per elementi del percorso (tipo, identificatore, tipo, identificatore...) |
|
| Chiave Blobstore | appengine.BlobKey |
Ordine dei byte |
Puoi anche utilizzare un struct o un slice per aggregare le proprietà. Per ulteriori dettagli, consulta
il riferimento di Datastore.
Quando una query coinvolge una proprietà con valori di tipi misti, Datastore utilizza un ordinamento deterministico basato sulle rappresentazioni interne:
- Valori null
- Numeri in virgola fissa
- Numeri interi
- Date e ore
- Valori booleani
- Sequenze di byte
- Stringa Unicode
- Chiavi Blobstore
- Byte slices (short)
- Numeri in virgola mobile
- Punti geografici
- Chiavi Datastore
Poiché le sezioni di byte lunghe e le stringhe lunghe non sono indicizzate, non hanno un ordinamento definito.