Firestore im Datastore-Modus (Datastore) unterstützt eine Vielzahl von Datentypen für Attributwerte. Diese umfassen unter anderem:
- Ganzzahlen
- Gleitkommazahlen
- Strings
- Datumsangaben
- Binärdaten
Eine vollständige Liste der Typen finden Sie unter Eigenschaften und Werttypen.
Eigenschaften und Werttypen
Die mit einer Entität verknüpften Datenwerte bestehen aus einem oder mehreren Attributen. Jedes Attribut hat einen Namen und einen oder mehrere Werte. Ein Attribut kann Werte mit mehr als einem Typ haben und zwei Entitäten können Werte unterschiedlichen Typs für dasselbe Attribut haben. Attribute können indexiert oder nicht indexiert sein. Abfragen, die nach einem Attribut A sortieren oder filtern, ignorieren Entitäten, bei denen A nicht indexiert ist. Eine Entität kann höchstens 20.000 indexierte Attribute haben.
Die folgenden Werttypen werden unterstützt:
Werttyp | Go-Typ(en) | Sortierfolge | Hinweise |
---|---|---|---|
Ganzzahl | int int8 int16 int32 int64 |
Numerisch | 64-Bit-Ganzzahl, signiert |
Gleitkommazahl | float32 float64 |
Numerisch | 64 Bit mit doppelter Genauigkeit, IEEE 754 |
Boolesch | bool |
false <true |
|
String (kurz) | string |
Unicode |
Bis zu 1.500 Byte |
String (lang) | string (mit noindex ) |
– | Bis zu 1 Megabyte Nicht indexiert |
Bytesegment (kurz) | datastore.ByteString |
Bytereihenfolge | Bis zu 1.500 Byte |
Bytesegment (lang) | []byte |
– | Bis zu 1 Megabyte Nicht indexiert |
Datum und Uhrzeit | time.Time |
Chronologisch | |
Geografischer Punkt | appengine.GeoPoint |
Nach Breitengrad, dann nach Längengrad |
|
Datastore-Schlüssel | *datastore.Key |
Nach Pfadelementen (Art, Kennung, Art, Kennung...) |
|
Blobstore-Schlüssel | appengine.BlobKey |
Bytereihenfolge |
Sie können auch struct
oder slice
verwenden, um Attribute zusammenzufassen. Weitere Informationen finden Sie in der Referenz zu Datastore.
Wenn eine Abfrage ein Attribut mit Werten verschiedener Typen enthält, verwendet Datastore eine deterministische Sortierung anhand der internen Darstellungen:
- Nullwerte
- Festkommazahlen
- Ganzzahlen
- Datums- und Uhrzeitwerte
- Boolesche Werte
- Bytesequenzen
- Bytesegmente (kurz)
- Unicode-String
- Blobstore-Schlüssel
- Gleitkommazahlen
- Geografische Punkte
- Datastore-Schlüssel
Da lange Bytesegmente und lange Strings nicht indexiert werden, wird für sie keine Reihenfolge definiert.