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 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 pueden estar indexadas o no (las consultas que ordenan o filtran por 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 | int int8 int16 int32 int64 |
Numérico | Número entero de 64 bits con signo. |
Número de punto flotante | float32 float64 |
Numérico | Doble precisión 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 coma fija
- Números enteros
- Fechas y horas
- valores booleanos
- Secuencias de bytes
- Intervalos de bytes (corto)
- Cadena Unicode
- claves del almacén de blob
- Números de punto flotante
- Puntos geográficos
- Claves de Datastore
Como no se indexan las porciones de bytes ni las cadenas largas, no tienen ningún orden definido.
.