Firestore en modo Datastore (Datastore) admite una variedad de tipos de datos para valores de propiedad. Se incluyen, entre otros:
- Números enteros
- números de punto flotante
- Strings
- Fechas
- Datos binarios
Para obtener una lista completa de los tipos, consulta Propiedades y tipos de valor.
Propiedades y tipos de valores
Los valores de datos asociados con una entidad constan de una o más propiedades. Cada propiedad tiene un nombre y uno o más valores. Una propiedad puede tener valores de más de un tipo, y dos entidades pueden tener valores de diferentes tipos para la misma propiedad. Las propiedades pueden o no estar indexadas (las consultas que ordenan o filtran en 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 tipos de valor siguientes:
Tipo de valor | Tipos de Go | Orden | Notas |
---|---|---|---|
Número entero | int int8 int16 int32 int64 |
Numérico | Número entero de 64 bits, con firma |
Número de coma flotante | float32 float64 |
Numérico | Precisión doble de 64 bits, IEEE 754 |
Booleano | bool |
false <true |
|
String (corta) | string |
Unicode |
Hasta 1,500 bytes |
String (larga) | string (con noindex ) |
Ninguno | Hasta 1 megabyte Sin indexar |
Segmento de bytes (corto) | datastore.ByteString |
Orden de bytes | Hasta 1,500 bytes |
Segmento de bytes (largo) | []byte |
Ninguno | Hasta 1 megabyte Sin indexar |
Fecha y hora | time.Time |
Cronológico | |
Punto geográfico | appengine.GeoPoint |
Por latitud, luego por longitud |
|
Clave de Datastore | *datastore.Key |
Por elementos de ruta de acceso (tipo, identificador, tipo, identificador…) |
|
Clave de blobstore | appengine.BlobKey |
Orden de bytes |
También puedes usar struct
o slice
para agregar propiedades. Para obtener más detalles, consulta la referencia de Datastore.
Cuando una consulta incluye una propiedad con valores de varios tipos, Datastore usa un orden determinista basado en representaciones internas:
- Valores nulos
- Números de coma fija
- Números enteros
- fechas y horarios
- Valores booleanos
- Secuencias de bytes
- Segmentos de bytes (cortos)
- string de Unicode
- Claves de Blobstore
- Números de coma flotante
- Puntos geográficos
- Claves de Datastore
Debido a que los segmentos de bytes largos y las strings largas no se indexan, no tienen un orden definido.