O Firestore no modo Datastore fornece acesso a metadados que incluem informações sobre grupos de entidades, espaços de nomes, tipos de entidades, propriedades e representações de propriedades para cada propriedade. Pode usar metadados, por exemplo, para criar um visualizador de repositório de dados personalizado para a sua aplicação ou para funções administrativas de back-end.
O painel de controlo do Datastore na consola também fornece alguns metadados sobre a sua aplicação, mas os dados apresentados aí diferem em alguns aspetos importantes dos devolvidos por estas funções. Google Cloud
- Atualidade. A leitura de metadados através da API obtém dados atuais, enquanto os dados no painel de controlo são atualizados apenas uma vez por dia.
- Conteúdo. Alguns metadados no painel de controlo não estão disponíveis através das APIs. O inverso também é verdadeiro.
- Velocidade. As obtenções e as consultas de metadados são faturadas da mesma forma que as obtenções e as consultas da base de dados. As consultas de metadados que obtêm informações sobre espaços de nomes, tipos e propriedades são, geralmente, lentas de executar. Como regra geral, espere que uma consulta de metadados que devolve N entidades demore aproximadamente o mesmo tempo que N consultas comuns, cada uma das quais devolve uma única entidade. Além disso, as consultas de representação de propriedades (consultas de propriedades que não são apenas chaves) são mais lentas do que as consultas de propriedades que são apenas chaves. As obtenções de metadados de metadados de grupos de entidades são ligeiramente mais rápidas do que a obtenção de uma entidade normal.
Consultas de metadados
Existem três tipos de entidades especiais reservados para consultas de metadados:
Entidade | Descrição |
---|---|
__namespace__ |
Usado para encontrar todos os espaços de nomes usados nas entidades da sua aplicação. |
__kind__ |
Usado para consultar um tipo específico. |
__property__ |
Usado para consultar por uma propriedade de um tipo. |
Estes tipos não entram em conflito com outros do mesmo nome que possam já existir na sua aplicação. Ao consultar estes tipos especiais, pode obter entidades que contêm os metadados pretendidos.
As entidades devolvidas pelas consultas de metadados são geradas dinamicamente com base no estado atual da sua base de dados. Embora possa criar objetos de entidades locais dos tipos __namespace__
, __kind__
ou __property__
, qualquer tentativa de os armazenar na base de dados falha.
Consultas de espaços de nomes
Pode usar uma consulta de espaço de nomes para encontrar todos os espaços de nomes usados nas entidades da aplicação. Isto permite-lhe realizar atividades como funções administrativas em vários espaços de nomes.
As consultas de espaço de nomes devolvem entidades do tipo especial __namespace__
cuja chave
é o nome de um espaço de nomes. (Uma exceção é o espaço de nomes predefinido
designado pela string vazia ""
: uma vez que a string vazia não é um nome
de chave válido, este espaço de nomes é indexado com o ID numérico 1
.) As consultas deste tipo suportam a filtragem apenas para intervalos sobre a pseudopropriedade especial __key__
, cujo valor é a chave da entidade. Os resultados podem ser ordenados por valor __key__
ascendente (mas não descendente). Uma vez que as entidades __namespace__
não têm propriedades, as consultas apenas com chaves e sem chaves devolvem as mesmas informações.
O exemplo seguinte devolve uma lista dos espaços de nomes de uma aplicação no intervalo entre os valores atribuídos às variáveis startNamespace
e endNamespace
:
C#
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API C# Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Go Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Java Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Node.js Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API PHP Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Python Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Ruby Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
GQL
SELECT __key__ FROM __namespace__ WHERE __key__ >= KEY(__namespace__, 'namespace-a') AND __key__ < KEY(__namespace__, 'namespace-b')
Consultas de tipo
As consultas de tipo devolvem entidades do tipo __kind__
cujo nome da chave é o nome de um tipo de entidade. As consultas deste tipo estão implicitamente restritas ao espaço de nomes atual e suportam a filtragem apenas para intervalos sobre a pseudopropriedade __key__
. Os resultados podem ser ordenados pelo valor de __key__
por ordem ascendente (mas não descendente). Uma vez que as entidades __kind__
não têm propriedades, as consultas apenas com chaves e sem chaves devolvem as mesmas informações.
O exemplo seguinte imprime uma lista dos tipos usados numa aplicação:
C#
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API C# Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Go Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Java Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Node.js Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API PHP Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Python Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Ruby Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
GQL
SELECT __key__ FROM __kind__
Consultas de propriedades
As consultas de propriedades devolvem entidades do tipo __property__
que denotam as propriedades indexadas associadas a um tipo de entidade. (As propriedades não indexadas não estão incluídas.) A entidade que representa a propriedade p do tipo k é criada da seguinte forma:
- A chave da entidade tem o tipo
__property__
e o nome da chave p. - A chave principal da entidade tem o tipo
__kind__
e o nome da chave k. - A propriedade da matriz
property_representation
da entidade contém todas as representações da propriedade.
Por exemplo, se a sua base de dados contiver exatamente duas entidades Task
com as propriedades name
e done
:
Key: 'Task:1'
name: 'Read some properties'
done: true
Key: 'Task:2'
name: 'Climb'
done: null
As duas entidades devolvidas por uma consulta __property__
são:
Key: '__kind__:Task/__property__:name'
property_representation: [ 'STRING' ]
Key: '__kind__:Task/__property__:done'
property_representation: [ 'BOOLEAN', 'NULL' ]
As consultas de propriedades estão implicitamente restritas ao espaço de nomes atual e suportam a filtragem limitada com um antepassado ou um intervalo sobre a pseudopropriedade __key__
.
Uma consulta de propriedade apenas com chaves é mais eficiente do que uma consulta sem ser apenas com chaves, uma vez que não precisa de recolher as representações da propriedade. O exemplo seguinte obtém os nomes de todos os tipos de entidades de uma aplicação e as propriedades associadas a cada um:
C#
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API C# Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Go Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Java Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Node.js Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API PHP Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Python Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Ruby Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
GQL
SELECT __key__ FROM __property__
Consultas de propriedades: representações de propriedades
As consultas de propriedades que não são apenas de chaves, conhecidas como consultas de representação de propriedades,
devolvem informações adicionais sobre os tipos de valores usados para cada propriedade. A propriedade property_representation
na entidade que representa a propriedade p de tipo k é uma matriz que contém todas as representações do valor de p em qualquer entidade de tipo k.
Cada valor tem a representação seguinte (tenha em atenção que alguns tipos de valores partilham representações):
Tipo de valor | Representação |
---|---|
Número inteiro | INT64 |
Número de vírgula flutuante | DOUBLE |
Booleano | BOOLEAN |
String de texto | STRING |
String de bytes | STRING |
Data e hora | INT64 |
Chave do armazenamento de dados | REFERENCE |
Entidade incorporada | STRING |
Matriz | Representação dos elementos da matriz |
Ponto geográfico | POINT |
Nulo | NULL |
O exemplo seguinte encontra todas as representações de propriedades do tipo Task
,
usando uma consulta de propriedade principal:
C#
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API C# Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Go Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Java Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Node.js Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API PHP Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Python Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Ruby Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
GQL
SELECT * FROM __property__ WHERE __key__ HAS ANCESTOR KEY(__kind__, 'Task')
Consultas de propriedades: filtragem
As consultas de propriedades suportam a filtragem de antecessores numa chave __kind__
ou __property__
, para limitar os resultados da consulta a um único tipo ou propriedade, conforme visto na consulta de representação de propriedade acima.
As consultas de propriedades também podem ser filtradas com um intervalo sobre a pseudopropriedade __key__
, em que as chaves denotam entidades __kind__
ou __property__
. Os resultados podem ser ordenados por ordem ascendente (mas não descendente) do valor de __key__
. A filtragem é aplicada a pares de tipo-propriedade, ordenados primeiro por tipo e, em segundo lugar, por propriedade. Por exemplo, suponha que tem entidades com as seguintes propriedades:
- kind
Task
com propriedadescreated
priority
tags
- kind
TaskList
com propriedadescreated
A seguinte consulta de propriedade apenas com chaves:
C#
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API C# Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Go Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Não aplicávelJava
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Java Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Node.js Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Não aplicávelPHP
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API PHP Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Python Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Não aplicávelRuby
Para saber como instalar e usar a biblioteca cliente do Cloud Datastore, consulte as bibliotecas cliente do Cloud Datastore. Para mais informações, consulte a documentação de referência da API Ruby Cloud Datastore.
Para se autenticar no Cloud Datastore, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
GQL
SELECT __key__ FROM __property__ WHERE __key__ >= KEY(__kind__, 'Task', __property__, 'priority')
Recolhe os seguintes pares de tipo e nome da propriedade:
Task, priority
Task, tags
TaskList, created
Repare que os resultados incluem propriedades dos tipos Task
e TaskList
, mas não incluem a propriedade created
do tipo Task
, porque está fora do intervalo especificado para a consulta.