Auf dieser Seite werden die von Cloud Firestore unterstützten Datentypen beschrieben.
Datentypen
In der folgenden Tabelle sind die von Cloud 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 |
|---|---|---|
| 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 und so weiter, bis eine Differenz 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: |
| Boolesch | false < true |
– |
| 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. |
| Datum und Uhrzeit | Chronologisch | Bei der Speicherung in Cloud Firestore ist die Genauigkeit nur auf Mikrosekunden beschränkt. Jede zusätzliche Genauigkeit wird abgerundet. |
| 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. |
| Ganzzahl | Numerisch | 64 Bit, signiert |
| Map | 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 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 verglichen und so weiter. 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:
|
| Null | – | – |
| Referenz | Nach Pfadelementen (Sammlung, Dokument-ID, Sammlung, Dokument-ID...) | Beispiel: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] |
| 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 Cloud Firestore eine deterministische Sortierung anhand der internen Darstellungen. Die folgende Liste zeigt diese Reihenfolge:
- Nullwerte
- Boolesche Werte
- Ganzzahl- und Gleitkommawerte, sortiert in numerischer Reihenfolge
- Datumswerte
- Textstring-Werte
- Byte-Werte
- Cloud Firestore Referenz
- Geografische Punktwerte
- Arraywerte
- Vektoreinbettungen
- Map-Werte
Numerische Sortierung
Cloud Firestore sortiert alle numerischen Werte (Integer und Floating point) verschachtelt miteinander. Der Gleitkommavergleich folgt der Gesamtordnung von IEEE 754, mit der bemerkenswerten Ausnahme, dass Cloud Firestore alle NaN-Werte normalisiert und als kleiner als -Infinity betrachtet.