Tipi di dati supportati

Questa pagina descrive i tipi di dati supportati da Firestore.

Tipi di dati

La tabella seguente elenca i tipi di dati supportati da Firestore. Descrive inoltre l'ordinamento utilizzato per confrontare i valori dello stesso tipo:

Tipo di dati Ordinamento Note
Numero intero a 32 bit Numerico

32 bit, con segno

Nota:supportato solo nella versione Enterprise.

Numero intero a 64 bit Numerico 64 bit, con segno
Array In base ai valori degli elementi

Nei database Standard Edition, un array non può contenere un altro valore di array come uno dei suoi elementi. Nei database della versione Enterprise, un array può contenere un valore di array come uno dei suoi elementi.

All'interno di un array, gli elementi mantengono la posizione assegnata. Quando ordini due o più array, questi vengono ordinati in base ai valori dei relativi elementi.

Quando si confrontano due array, vengono confrontati i primi elementi di ciascun array. Se i primi elementi sono uguali, vengono confrontati i secondi elementi e così via fino a trovare una differenza. Se un array esaurisce gli elementi da confrontare, ma è uguale fino a quel punto, l'array più breve viene ordinato prima di quello più lungo.

Ad esempio, [1, 2, 3] < [1, 2, 3, 1] < [2]. L'array [2] ha il valore del primo elemento più alto. L'array [1, 2, 3] ha elementi uguali ai primi tre elementi di [1, 2, 3, 1], ma è più corto.

Booleano false < true —
Timestamp BSON Cronologica

Un valore di timestamp a 64 bit che comprende i secondi Unix e un contatore di incremento.

Nota:supportato solo nella versione Enterprise.

Byte Ordine dei byte Nei database Standard Edition, il valore non deve superare 1.048.487 byte (1 MiB - 89 byte) e solo i primi 1500 byte vengono considerati dalle query. Nei database Enterprise Edition, non esiste un limite per la dimensione del valore (oltre ai limiti di dimensione delle voci di documento e indice) e l'intero valore viene considerato dalle query.
Byte con sottotipo Ordine dei byte (sottotipo, poi valore)

Sequenza di byte binari con un indicatore di sottotipo BSON.

Nota:supportato solo nella versione Enterprise.

Data e ora Cronologica Se archiviati in Firestore, sono precisi solo al microsecondo; qualsiasi precisione aggiuntiva viene arrotondata per difetto.
Decimal128 Numerico

Numero in virgola mobile decimale a 128 bit per l'aritmetica ad alta precisione.

Nota:supportato solo nella versione Enterprise.

Numero in virgola mobile Numerico Precisione doppia a 64 bit secondo lo standard IEEE 754, inclusi NaN e +/-Infinity (normalizzati).
Punto geografico Per latitudine, poi longitudine Per eseguire ricerche in base alla distanza, consulta Ricerca geospaziale.
Mappa Per chiavi, poi per valore

Rappresenta un oggetto incorporato in un documento. Se indicizzati, puoi eseguire query sui campi secondari. Se escludi questo valore dall'indicizzazione, anche tutti i campi secondari vengono esclusi dall'indicizzazione.

L'ordinamento delle chiavi è sempre ordinato. Ad esempio, se scrivi {c: "foo", a: "bar", b: "qux"}, la mappa viene ordinata per chiave e salvata come {a: "bar", b: "qux", c: "foo"}.

I campi mappa sono ordinati per chiave e confrontati per coppie chiave-valore, confrontando prima le chiavi e poi i valori. Se le prime coppie chiave-valore sono uguali, vengono confrontate le coppie chiave-valore successive, continuando fino a trovare una differenza. Se due mappe hanno tutte le stesse coppie chiave-valore, viene considerata la lunghezza della mappa. Ad esempio, le seguenti mappe sono in ordine crescente:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

Chiave massima Nessuno

Valore speciale che risulta maggiore di tutti gli altri valori.

Nota:supportato solo nella versione Enterprise.

Chiave minima Nessuno

Valore speciale che viene confrontato con un valore inferiore rispetto a tutti gli altri valori (tranne null).

Nota:supportato solo nella versione Enterprise.

Null Nessuno —
ObjectId Ordine dei byte

Un identificatore di oggetto di 12 byte.

Nota:supportato solo nella versione Enterprise.

Riferimento In base agli elementi del percorso (raccolta, ID documento, raccolta, ID documento…) Ad esempio, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
Espressione regolare Per pattern, poi per opzioni

Un pattern di espressione regolare e le opzioni.

Nota:supportato solo nella versione Enterprise.

Stringa di testo Ordine dei byte con codifica UTF-8 Nei database Standard Edition, il valore non deve superare 1.048.487 byte (1 MiB - 89 byte) e solo i primi 1500 byte vengono considerati dalle query. Nei database Enterprise Edition, non esiste un limite per la dimensione del valore (oltre ai limiti di dimensione delle voci di documento e indice) e l'intero valore viene considerato dalle query.
Vettoriale Per dimensione e poi per singoli valori degli elementi La dimensione massima supportata dell'embedding è 2048. Per archiviare vettori con dimensioni maggiori, utilizza la riduzione della dimensionalità.

Ordinamento dei tipi di valore

Quando una query coinvolge un campo con valori di tipi misti, Firestore utilizza un ordinamento deterministico basato sulle rappresentazioni interne. Il seguente elenco mostra l'ordine:

  1. Valori nulli
  2. Valori chiave minimi (solo versione Enterprise)
  3. Valori booleani
  4. Valori interi e in rappresentazione in virgola mobile a 64 bit, ordinati in ordine numerico. Nei database della versione Enterprise sono inclusi anche i valori interi a 32 bit e Decimal128.
  5. Valori delle date
  6. Valori stringa di testo
  7. Valori di byte. Nella versione Enterprise sono inclusi anche i byte con valori di sottotipo.
  8. Riferimenti di Firestore
  9. Valori ObjectId (solo versione Enterprise)
  10. Valori dei punti geografici
  11. Espressione regolare (solo versione Enterprise)
  12. Valori di array
  13. Vector embedding
  14. Valori mappa
  15. Numero massimo di coppie chiave-valore (solo versione Enterprise)

Ordinamento numerico

Firestore ordina tutti i valori numerici (Integer e Floating point) intervallati tra loro. Il confronto in virgola mobile segue l'ordinamento totale di IEEE 754 con la notevole eccezione che Firestore normalizza tutti i valori NaN e li considera inferiori a -Infinity.