Tipos de dados compatíveis
Veja nesta página os tipos de dados compatíveis com o Firestore.
Tipos de dados
A tabela a seguir lista os tipos de dados compatíveis com o Firestore. Também descreve a ordem de classificação usada ao comparar valores do mesmo tipo:
| Tipo de dados | Ordem de classificação | Observações |
|---|---|---|
| Inteiro de 32-bit. | Numérico |
32 bits, assinado. Observação:compatível apenas com a edição Enterprise. |
| Inteiro de 64 bits | Numérico | 64 bits, assinado. |
| Matriz | Por valores de elemento |
Em bancos de dados da edição Standard, uma matriz não pode conter outro valor de matriz como um de seus elementos. Nos bancos de dados da edição Enterprise, uma matriz pode conter um valor de matriz como um dos elementos. Dentro de uma matriz, os elementos mantêm a posição atribuída a eles. Ao classificar duas ou mais matrizes, elas são ordenadas com base nos seus valores de elemento. Ao comparar duas matrizes, os primeiros elementos de cada uma delas são comparados. Se os primeiros elementos forem iguais, os segundos elementos serão comparados, e assim por diante, até que uma diferença seja encontrada. Se uma matriz ficar sem elementos para comparar, mas for igual até esse ponto, a matriz mais curta será ordenada antes da matriz mais longa. Por exemplo, |
| Booleano | false < true |
— |
| Carimbo de data/hora BSON | Cronológica |
Um valor de carimbo de data/hora de 64 bits que inclui segundos Unix e um contador de incremento. Observação:compatível apenas com a edição Enterprise. |
| Bytes | Ordem de bytes | Nos bancos de dados da edição Standard, o valor não pode exceder 1.048.487 bytes (1 MiB - 89 bytes), e somente os primeiros 1.500 bytes são considerados pelas consultas. Nos bancos de dados da edição Enterprise, não há limite para o tamanho do valor (exceto os limites de tamanho de documentos e entradas de índice), e o valor total é considerado pelas consultas. |
| Bytes com subtipo | Ordem de bytes (subtipo e valor) |
Sequência de bytes binários com um indicador de subtipo BSON. Observação:compatível apenas com a edição Enterprise. |
| Data e hora | Cronológica | Quando armazenados no Firestore, têm precisão apenas para microssegundos. Qualquer precisão adicional é arredondada para baixo. |
| Decimal128 | Numérico |
Número de ponto flutuante decimal de 128 bits para aritmética de alta precisão. Observação:compatível apenas com a edição Enterprise. |
| Número de ponto flutuante | Numérico | Precisão dupla de 64 bits de acordo com o IEEE 754, incluindo NaN e +/-Infinity (normalizados). |
| Ponto geográfico | Por latitude e depois longitude | Para pesquisar com base na distância, consulte Pesquisa geoespacial. |
| Mapa | Por chaves e, em seguida, por valor | Representa um objeto incorporado em um documento. Quando indexado, é possível consultar subcampos. Se você excluir esse valor da indexação, todos os subcampos também serão excluídos.
A ordenação das chaves é sempre classificada. Se você gravar Os campos do mapa são classificados por chave e comparados por pares de chave-valor, primeiro comparando as chaves e, em seguida, os valores. Se os primeiros pares de chave-valor forem iguais, os próximos pares serão comparados até que uma diferença seja encontrada. Se dois mapas tiverem todos os mesmos pares de chave-valor, o tamanho será considerado. Por exemplo, os mapas a seguir estão em ordem crescente:
|
| Chave máx. | Nenhum |
Valor especial que é maior do que todos os outros valores. Observação:disponível apenas na edição Enterprise. |
| Chave mínima | Nenhum |
Valor especial que é menor do que todos os outros valores (exceto nulo). Observação:disponível apenas na edição Enterprise. |
| Nulo | Nenhum | — |
| ObjectId | Ordem de bytes |
Um identificador de objeto de 12 bytes. Observação:compatível apenas com a edição Enterprise. |
| Referência | Por elementos do caminho (coleção, código do documento, coleção, código do documento…) | Por exemplo, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]. |
| Expressão regular | Por padrão e, em seguida, por opções |
Um padrão de expressão regular e opções. Observação:compatível apenas com a edição Enterprise. |
| String de texto | Ordem de bytes codificada em UTF-8 | Nos bancos de dados da edição Standard, o valor não pode exceder 1.048.487 bytes (1 MiB - 89 bytes), e somente os primeiros 1.500 bytes são considerados pelas consultas. Nos bancos de dados da edição Enterprise, não há limite para o tamanho do valor (exceto os limites de tamanho de documentos e entradas de índice), e o valor total é considerado pelas consultas. |
| Vetor | Por dimensão e depois por valores de elementos individuais | A dimensão de incorporação máxima compatível é 2048. Para armazenar vetores com dimensões maiores, use redução de dimensionalidade. |
Ordem de tipo de valor
Quando uma consulta envolve um campo com valores de tipos mistos, o Firestore usa uma ordem determinista com base nas representações internas. Veja a ordem na lista a seguir:
- Valores nulos
- Valores de chave mínimos (somente na edição Enterprise)
- Valores booleanos
- Valores de inteiros e ponto flutuante de 64 bits, classificados em ordem numérica. Nos bancos de dados da edição Enterprise, valores inteiros de 32 bits e Decimal128 também são incluídos.
- Valores de data
- Valores de string de texto
- Valores de byte. Na edição Enterprise, os bytes com valores de subtipo também são incluídos.
- Referências do Firestore
- Valores de ObjectId (somente na edição Enterprise)
- Valores de ponto geográfico
- Expressão regular (somente na edição Enterprise)
- Valores de matriz
- Embeddings de vetor
- Valores de mapa
- Chaves-valor máximas (somente na edição Enterprise)
Ordenação numérica
O Firestore classifica todos os valores numéricos (Integer e Floating point)
entrelaçados. A comparação de ponto flutuante segue a ordenação
total do IEEE 754, com a exceção
notable de que o Firestore normaliza todos os valores de NaN e
os considera menores que -Infinity.