Riferimento alle proprietà delle entità

Firestore in modalità Datastore (Datastore) supporta diversi tipi di dati per i valori delle proprietà. tra cui:

  • 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 valore

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 int
int8
int16
int32
int64
Numerico Numero intero a 64 bit con segno
Numero in virgola mobile float32
float64
Numerico Precisione doppia 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 indicizzate
Slice di byte (breve) datastore.ByteString Ordine dei byte Fino a 1500 byte
Slice di byte (long) []byte Nessuno Fino a 1 megabyte

Non indicizzate
Data e ora time.Time Cronologica
Punto geografico appengine.GeoPoint Per latitudine,
poi per longitudine
Chiave del datastore *datastore.Key Per elementi del percorso
(kind, identifier,
kind, identifier...)
Chiave Blobstore appengine.BlobKey Ordine dei byte

Puoi anche utilizzare un struct o un slice per aggregare le proprietà. Per ulteriori dettagli, consulta la documentazione di riferimento di Datastore.

Quando una query coinvolge una proprietà con valori di tipi misti, Datastore utilizza un ordinamento deterministico basato sulle rappresentazioni interne:

  1. Valori null
  2. Numeri a virgola fissa
    • Numeri interi
    • Date e ore
  3. Valori booleani
  4. Sequenze di byte
    • Slice di byte (brevi)
    • Stringa Unicode
    • Chiavi dell'archivio BLOB
  5. Numeri in virgola mobile
  6. Punti geografici
  7. Chiavi del datastore

Poiché gli slice di byte e le stringhe lunghi non sono indicizzati, non hanno un ordine definito.