Unterstützte Datentypen

Auf dieser Seite werden die Datentypen beschrieben, die Firestore unterstützt.

Datentypen

In der folgenden Tabelle sind die von Firestore unterstützten Datentypen aufgeführt. Außerdem wird darin die Sortierreihenfolge beschrieben, nach der beim Vergleichen von Werten desselben Typs vorgegangen wird:

Datentyp Sortierreihenfolge Hinweise
32-Bit-Ganzzahl Numerisch

32-Bit, signiert

Hinweis: Wird nur in der Enterprise-Version unterstützt.

64-Bit-Ganzzahl Numerisch 64 Bit, signiert
Array Nach Elementwerten

In Datenbanken der Standard-Edition darf ein Array keinen anderen Array-Wert als eines seiner Elemente enthalten. In Datenbanken der Enterprise-Version kann ein Array einen Arraywert als eines seiner Elemente enthalten.

Innerhalb eines Arrays behalten Elemente die ihnen zugewiesene Position bei. Beim Sortieren von zwei oder mehr Arrays geben deren Elementwerte die Reihenfolge vor.

Beim Vergleich von zwei Arrays werden die jeweils ersten Elemente verglichen. Wenn die ersten Elemente gleich sind, werden die zweiten Elemente verglichen, bis ein Unterschied gefunden wird. Wenn ein Array keine weiteren zu vergleichenden Elemente aufweist, aber bis zu diesem Punkt identisch ist, wird das kürzere vor dem längeren Array angeordnet.

Beispiel: [1, 2, 3] < [1, 2, 3, 1] < [2] Das Array [2] hat den größten Wert für das erste Element. Das Array [1, 2, 3] enthält Elemente, die den ersten drei Elementen von [1, 2, 3, 1] entsprechen, ist jedoch kürzer.

Boolesch false < true –
BSON-Zeitstempel Chronologisch

Ein 64-Bit-Zeitstempelwert, der aus Unix-Sekunden und einem Inkrementzähler besteht.

Hinweis: Wird nur in der Enterprise-Version unterstützt.

Byte Bytereihenfolge In Datenbanken der Standard-Edition darf der Wert 1.048.487 Byte (1 MiB – 89 Byte) nicht überschreiten und nur die ersten 1.500 Byte werden von Abfragen berücksichtigt. In Datenbanken der Enterprise-Version gibt es keine Beschränkung für die Größe des Werts (außer den Größenbeschränkungen für Dokumente und Indexeinträge) und der vollständige Wert wird bei Abfragen berücksichtigt.
Bytes mit Untertyp Bytereihenfolge (Untertyp, dann Wert)

Binäre Bytesequenz mit einem BSON-Untertypanzeiger.

Hinweis: Wird nur in der Enterprise-Version unterstützt.

Datum und Uhrzeit Chronologisch Bei der Speicherung in Firestore nur auf Mikrosekunden genau, kleinere Zeiteinheiten werden abgerundet.
Decimal128 Numerisch

128-Bit-Dezimal-Gleitkommazahl für hochpräzise Arithmetik.

Hinweis: Wird nur in der Enterprise-Version unterstützt.

Gleitkommazahl Numerisch 64 Bit mit doppelter Genauigkeit gemäß IEEE 754, einschließlich (normalisiert) NaN und +/-Infinity.
Geografischer Punkt Nach Längengrad, dann nach Breitengrad Informationen zur Suche nach Entfernung finden Sie unter Geospatial Search.
Karte Nach Schlüsseln, danach nach Wert

Stellt ein in ein Dokument eingebettetes Objekt dar. Kann, sofern indexiert, auf untergeordnete Felder abgefragt werden. Wenn Sie diesen Wert von der Indexierung ausschließen, werden auch alle untergeordneten Felder von der Indexierung ausgeschlossen.

Schlüssel werden immer sortiert. Wenn Sie beispielsweise {c: "foo", a: "bar", b: "qux"} schreiben, wird die Map nach Schlüsseln sortiert und als {a: "bar", b: "qux", c: "foo"} gespeichert.

Map-Felder werden nach Schlüsseln sortiert und nach Schlüssel/Wert-Paaren verglichen, wobei zuerst die Schlüssel und dann die Werte verglichen werden. Wenn die ersten Schlüssel/Wert-Paare gleich sind, werden die nächsten Schlüssel/Wert-Paare verglichen, bis ein Unterschied gefunden wird. Wenn zwei Maps dieselben Schlüssel/Wert-Paare haben, wird die Map-Länge berücksichtigt. Die folgenden Maps sind beispielsweise in aufsteigender Reihenfolge angeordnet:

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

Maximaler Schlüssel Keine

Spezialwert, der höher als alle anderen Werte ist.

Hinweis: Wird nur in der Enterprise-Version unterstützt.

Minimale Taste Keine

Spezialwert, der kleiner als alle anderen Werte (außer null) ist.

Hinweis: Wird nur in der Enterprise-Version unterstützt.

Null – –
ObjectId Bytereihenfolge

Eine 12-Byte-Objektkennung.

Hinweis: Wird nur in der Enterprise-Version unterstützt.

Referenz Nach Pfadelementen (Sammlung, Dokument-ID, Sammlung, Dokument-ID...) Beispiel: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]
Regulärer Ausdruck Nach Muster, dann nach Optionen

Ein Muster für reguläre Ausdrücke und Optionen.

Hinweis: Wird nur in der Enterprise-Version unterstützt.

Textstring UTF-8-codierte Byte-Reihenfolge In Datenbanken der Standard-Edition darf der Wert 1.048.487 Byte (1 MiB – 89 Byte) nicht überschreiten und nur die ersten 1.500 Byte werden von Abfragen berücksichtigt. In Datenbanken der Enterprise-Version gibt es keine Beschränkung für die Größe des Werts (außer den Größenbeschränkungen für Dokumente und Indexeinträge) und der vollständige Wert wird bei Abfragen berücksichtigt.
Vektor Nach Dimension und dann nach einzelnen Elementwerten Die maximal unterstützte Einbettungsdimension ist 2048. Wenn Sie Vektoren mit größeren Dimensionen speichern möchten, verwenden Sie die Dimensionsreduktion.

Werttypsortierung

Wenn eine Abfrage ein Feld mit Werten verschiedener Typen enthält, verwendet Firestore eine deterministische Sortierung anhand der internen Darstellungen. Die folgende Liste zeigt diese Reihenfolge:

  1. Nullwerte
  2. Minimale Schlüsselwerte (nur Enterprise-Version)
  3. Boolesche Werte
  4. 64-Bit-Ganzzahl- und Gleitkommawerte, sortiert in numerischer Reihenfolge. In Datenbanken der Enterprise-Version sind auch 32-Bit-Ganzzahl- und Decimal128-Werte enthalten.
  5. Datumswerte
  6. Textstring-Werte
  7. Bytewerte. In der Enterprise-Version sind auch Byte mit Untertypwerten enthalten.
  8. Firestore-Verweise
  9. ObjectId-Werte (nur Enterprise-Version)
  10. Geografische Punktwerte
  11. Regulärer Ausdruck (nur Enterprise-Version)
  12. Arraywerte
  13. Vektoreinbettungen
  14. Map-Werte
  15. Maximale Anzahl von Schlüssel/Wert-Paaren (nur Enterprise-Version)

Numerische Sortierung

Firestore sortiert alle numerischen Werte (Integer und Floating point) verschachtelt miteinander. Der Gleitkommavergleich folgt der Gesamtreihenfolge von IEEE 754, mit der bemerkenswerten Ausnahme, dass Firestore alle NaN-Werte normalisiert und als kleiner als -Infinity betrachtet.