Referência de propriedade da entidade

O Firestore no modo Datastore (Datastore) dá suporte a vários tipos de dados para valores de propriedade. Estes são alguns deles:

  • Números inteiros
  • Números de ponto flutuante
  • Strings
  • Datas
  • Dados binários

Para uma lista completa de tipos, consulte Propriedades e tipos de valor.

Propriedades e tipos de valor

Os valores de dados associados a uma entidade consistem em uma ou mais propriedades. Cada propriedade tem um nome e um ou mais valores. Uma propriedade pode ter valores de mais de um tipo, e duas entidades podem ter valores de tipos diferentes para a mesma propriedade. As propriedades podem ser indexadas ou não (consultas que ordenam ou filtram com base em uma propriedade P ignoram entidades em que P não seja indexada). Uma entidade pode ter no máximo 20.000 propriedades indexadas.

Estes são os tipos de valor com suporte:

Tipo de valor Tipo(s) do Go Ordem de classificação Observações
Número inteiro int
int8
int16
int32
int64
Numérico Número inteiro de 64 bits, assinado
Número de ponto flutuante float32
float64
Numérico Precisão dupla de 64 bits,
IEEE 754
Booleanos bool false<true
String (curta) string Unicode
Até 1500 bytes
String (longa) string (com noindex) Nenhuma Até 1 megabyte

Não indexado
Fatia de bytes (curta) datastore.ByteString Ordem de bytes Até 1500 bytes
Fatia de bytes (longa) []byte Nenhuma Até 1 megabyte

Não indexado
Data e hora time.Time Cronológica
Ponto geográfico appengine.GeoPoint Por latitude,
e depois longitude
Chave do Datastore *datastore.Key Por elementos do caminho
(tipo, identificador,
tipo, identificador...)
Chave Blobstore appengine.BlobKey Ordem de bytes

Você também pode usar um struct ou slice para agregar propriedades. Consulte a referência do Datastore para mais detalhes.

Quando uma consulta envolve uma propriedade com valores de tipos mistos, o Datastore usa uma ordem determinista com base nas representações internas:

  1. Valores nulos
  2. Números de ponto fixo
    • Números inteiros
    • Datas e horas
  3. Valores booleanos
  4. Sequências de bytes
    • String Unicode
    • Chaves do Blobstore
    • Fatias de bytes (curtas)
  5. Números de ponto flutuante
  6. Pontos geográficos
  7. Chaves do armazenamento de dados

Como frações de bytes longas e strings longas não são indexadas, elas não têm ordem definida.