O Firestore no modo Datastore (Datastore) suporta uma variedade de tipos de dados para valores de propriedades. Estas incluem, entre outras:
- Números inteiros
- Números de vírgula flutuante
- Strings
- Datas
- Dados binários
Para ver uma lista completa de tipos, consulte Propriedades e tipos de valores.
Propriedades e tipos de valores
Os valores de dados associados a uma entidade consistem numa ou mais propriedades. Cada propriedade tem um nome e um ou mais valores. Uma propriedade pode ter valores de mais do que um tipo, e duas entidades podem ter valores de tipos diferentes para a mesma propriedade. As propriedades podem ser indexadas ou não indexadas (as consultas que ordenam ou filtram uma propriedade P ignoram as entidades em que P não está indexada). Uma entidade pode ter, no máximo, 20 000 propriedades indexadas.
São suportados os seguintes tipos de valores:
Tipo de valor | Tipos de deslocações | Ordenação | Notas |
---|---|---|---|
Número inteiro | int int8 int16 int32 int64 |
Numérico | Número inteiro de 64 bits, com sinal |
Número de vírgula flutuante | float32 float64 |
Numérico | Precisão dupla de 64 bits, IEEE 754 |
Booleano | bool |
false <true |
|
String (curta) | string |
Unicode |
Até 1500 bytes |
String (longa) | string (com noindex ) |
Nenhum | Até 1 megabyte Não indexado |
Intervalo de bytes (curto) | datastore.ByteString |
Ordem dos bytes | Até 1500 bytes |
Segmento de bytes (longo) | []byte |
Nenhum | Até 1 megabyte Não indexado |
Data e hora | time.Time |
Cronológico | |
Ponto geográfico | appengine.GeoPoint |
Por latitude, depois longitude |
|
Chave do armazenamento de dados | *datastore.Key |
Por elementos de caminho (tipo, identificador, tipo, identificador...) |
|
Chave do Blobstore | appengine.BlobKey |
Ordem dos bytes |
Também pode usar um struct
ou um slice
para agregar propriedades. Consulte a referência do Datastore para ver mais detalhes.
Quando uma consulta envolve uma propriedade com valores de tipos mistos, o Datastore usa uma ordenação determinística com base nas representações internas:
- Valores nulos
- Números de ponto fixo
- Números inteiros
- Datas e horas
- Valores booleanos
- Sequências de bytes
- Fatias de bytes (curto)
- String Unicode
- Chaves do Blobstore
- Números de vírgula flutuante
- Pontos geográficos
- Chaves do Datastore
Uma vez que as fatias de bytes longas e as strings longas não são indexadas, não têm uma ordem definida.