Firestore en el modo de Datastore (Datastore) admite varios tipos de datos para los valores de las propiedades. Entre ellos, se incluyen los siguientes:
- Números enteros
- Números de punto flotante
- Cadenas
- Fechas
- Datos binarios
Para ver una lista completa de los tipos, consulta las Propiedades y tipos de valor.
Propiedades y tipos de valores
Los valores de datos asociados a una entidad constan de una o varias propiedades. Cada propiedad tiene un nombre y uno o varios valores. Una propiedad puede tener valores de más de un tipo, y dos entidades pueden tener valores de tipos diferentes para la misma propiedad. Las propiedades se pueden indexar o no indexar (las consultas que ordenan o filtran una propiedad P ignorarán las entidades en las que P no esté indexada). Una entidad puede tener como máximo 20.000 propiedades indexadas.
Se admiten los siguientes tipos de valores:
| Tipo de valor | Tipos de Go | Ordenar por | Notas |
|---|---|---|---|
| Entero | intint8int16int32int64 |
Numérico | Número entero de 64 bits con signo. |
| Número de punto flotante | float32float64 |
Numérico | Precisión doble de 64 bits, IEEE 754 |
| Booleano | bool |
false<true |
|
| Cadena (corta) | string |
Unicode |
Hasta 1500 bytes |
| Cadena (larga) | string (con noindex) |
Ninguno | Hasta 1 megabyte Sin indexar |
| Porción de bytes (corta) | datastore.ByteString |
Orden de bytes | Hasta 1500 bytes |
| Slice de bytes (largo) | []byte |
Ninguno | Hasta 1 megabyte Sin indexar |
| Fecha y hora | time.Time |
Cronológico | |
| Punto geográfico | appengine.GeoPoint |
Por latitud, y luego por longitud |
|
| Clave de Datastore | *datastore.Key |
Por elementos de ruta (tipo, identificador, tipo, identificador...) |
|
| Clave de Blobstore | appengine.BlobKey |
Orden de bytes |
También puedes usar struct o slice para agregar propiedades. Consulta más información en la referencia de Datastore.
Cuando una consulta incluye una propiedad con valores de tipos mixtos, Datastore usa un orden determinista basado en las representaciones internas:
- valores nulos
- Números de punto fijo
- Números enteros
- Fechas y horas
- valores booleanos
- Secuencias de bytes
- Cadena Unicode
- Claves de Blobstore
- Porciones de bytes (cortas)
- Números de punto flotante
- Puntos geográficos
- Claves de Datastore
Como no se indexan las segmentos de bytes largos y cadenas largas , no tienen ningún orden definido.