Firestore en modo Datastore proporciona acceso a metadatos que incluyen información sobre grupos de entidades, espacios de nombres, categorías de entidades, propiedades y representaciones de propiedades para cada propiedad. Por ejemplo, puedes usar metadatos a fin de compilar un visualizador de almacén de datos personalizado para tu aplicación o realizar funciones administrativas de backend.
El panel de Datastore en la consola de Google Cloud también proporciona algunos metadatos sobre la aplicación, pero los datos que se muestran allí difieren de los que muestran estas funciones en algunos aspectos importantes.
- Actualidad: Cuando se leen los metadatos con la API, se obtienen los datos actuales, mientras que los datos del panel se actualizan solo una vez por día.
- Contenido: Algunos metadatos del panel no están disponibles mediante las API y viceversa.
- Velocidad: La consulta y la obtención de metadatos se facturan de la misma forma que las del almacén de datos. Las consultas de metadatos que buscan información en espacios de nombres, tipos y propiedades son generalmente de ejecución lenta. Como regla general, puedes esperar que una consulta de metadatos que muestra N entidades demore el mismo tiempo que N consultas ordinarias que muestran una sola entidad cada una. Además, las consultas de representaciones de propiedades (consultas de propiedades no solo de claves) son más lentas que las consultas de propiedades solo de claves. La obtención de metadatos de grupos de entidad es más rápida que la de una entidad normal.
Consultas de metadatos
Hay tres tipos de entidades especiales reservados para las consultas de metadatos:
Entidad | Descripción |
---|---|
__namespace__ |
Se usa para encontrar todos los espacios de nombres empleados en las entidades de tu aplicación. |
__kind__ |
Se usa para consultar un tipo específico. |
__property__ |
Se usa para consultar según una propiedad de un tipo. |
Estos tipos no entrarán en conflicto con otros que tengan el mismo nombre y que ya existan en tu aplicación. Si consultas estas categorías especiales, puedes obtener entidades que contengan los metadatos deseados.
Las entidades que muestran las consultas de metadatos se generan de forma dinámica, en función del estado actual de tu base de datos. Aunque puedes crear objetos de entidad local de las categorías __namespace__
, __kind__
o __property__
, cualquier intento de almacenarlos en la base de datos fallará.
Consultas de espacio de nombres
Puedes usar una consulta de espacio de nombres para encontrar todos los espacios de nombres que se usan en las entidades de la aplicación. Esto te permite realizar actividades como funciones administrativas en varios espacios de nombres.
Las consultas de espacio de nombres muestran entidades de la categoría especial __namespace__
cuyo nombre de clave es el nombre de un espacio de nombres. (Una excepción a esto es el espacio de nombres predeterminado que designa la string vacía ""
: como la string vacía no es un nombre de clave válido, este espacio de nombres recibe una clave con el ID numérico 1
). Las consultas de este tipo admiten el filtrado solo para rangos sobre la seudopropiedad especial __key__
, cuyo valor es la clave de la entidad. Los resultados se pueden ordenar por valor ascendente (pero no descendente) de __key__
. Debido a que las entidades __namespace__
no tienen propiedades, las consultas solo de clave y no solo de clave muestran la misma información.
En el siguiente ejemplo, se muestra una lista de los espacios de nombres de una aplicación en el rango entre los valores asignados a las variables startNamespace
y endNamespace
:
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Go de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Java de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de PHP de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
GQL
SELECT __key__ FROM __namespace__ WHERE __key__ >= KEY(__namespace__, 'namespace-a') AND __key__ < KEY(__namespace__, 'namespace-b')
Consultas de tipos
Las consultas de categorías muestran entidades de categoría __kind__
cuyo nombre de clave es el nombre de una categoría de entidad. Las consultas de este tipo están restringidas de forma implícita al espacio de nombres actual y admiten el filtrado solo para rangos sobre la seudopropiedad __key__
. Los resultados se pueden ordenar por valor ascendente (pero no descendente) de __key__
. Debido a que las entidades __kind__
no tienen propiedades, las consultas solo de clave y no solo de clave muestran la misma información.
En el siguiente ejemplo, se muestra una lista de las categorías usadas en una aplicación:
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Go de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Java de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Python de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
GQL
SELECT __key__ FROM __kind__
Consultas de propiedades
Las consultas de propiedades muestran entidades de categoría __property__
que denotan las propiedades indexadas asociadas con una categoría de entidad. (No se incluyen las propiedades no indexadas). La entidad que representa la propiedad p de la categoría k está compuesta por los siguientes elementos:
- La clave de la entidad tiene la categoría
__property__
y el nombre de clave p. - La clave principal de la entidad tiene la categoría
__kind__
y el nombre de clave k. - La propiedad de arreglo
property_representation
de la entidad contiene todas las representaciones de la propiedad.
Por ejemplo, supongamos que tu base de datos contiene exactamente dos entidades Task
con propiedades name
y done
:
Key: 'Task:1'
name: 'Read some properties'
done: true
Key: 'Task:2'
name: 'Climb'
done: null
entonces las dos entidades mostradas por una consulta __property__
serán las siguientes:
Key: '__kind__:Task/__property__:name'
property_representation: [ 'STRING' ]
Key: '__kind__:Task/__property__:done'
property_representation: [ 'BOOLEAN', 'NULL' ]
Las consultas de propiedades están restringidas de forma implícita al espacio de nombres actual y admiten un filtrado limitado con una principal o un rango sobre la seudopropiedad __key__
.
Una consulta de propiedades solo de claves es más eficiente que una consulta que no sea solo de claves, ya que no necesita recopilar las representaciones de la propiedad. El siguiente ejemplo muestra los nombres de todos los tipos de entidades de una aplicación y las propiedades asociadas a cada uno:
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Go de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Java de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de PHP de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Ruby de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
GQL
SELECT __key__ FROM __property__
Consultas de propiedades: representaciones de propiedades
Las consultas de propiedades que no son solo de claves, conocidas como consultas de representaciones de propiedades, muestran información adicional sobre los tipos de valores que se usan para cada propiedad. La propiedad property_representation
en la entidad que representa la propiedad p de la categoría k es un arreglo que contiene todas las representaciones del valor de p en cualquier entidad de la categoría k.
Cada valor tiene la siguiente representación (algunos tipos de valores comparten representaciones):
Tipo de valor | Representación |
---|---|
Número entero | INT64 |
Número de coma flotante | DOUBLE |
Booleano | BOOLEAN |
String de texto | STRING |
String de bytes | STRING |
Fecha y hora | INT64 |
Clave de Datastore | REFERENCE |
Entidad incorporada | STRING |
Arreglo | representación de los elementos del arreglo |
Punto geográfico | POINT |
Nulo | NULL |
En el siguiente ejemplo, se encuentran todas las representaciones de propiedades de la categoría Task
con una consulta de propiedad principal:
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de C# de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Java de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Node.js de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Python de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Ruby de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
GQL
SELECT * FROM __property__ WHERE __key__ HAS ANCESTOR KEY(__kind__, 'Task')
Consultas de propiedades: filtrado
Las consultas de propiedad admiten el filtrado de principales en una clave __kind__
o __property__
para limitar los resultados de la consulta a una sola categoría o propiedad, como se ve en la consulta de representación de propiedades anterior.
Las consultas de propiedades también se pueden filtrar con un rango sobre la seudopropiedad __key__
, en la que las claves denotan entidades __kind__
o __property__
. Los resultados se pueden ordenar por valor ascendente (pero no descendente) de __key__
. Se aplica el filtro a los pares categoría-propiedad, ordenados primero por categoría y después por propiedad. Por ejemplo, imagina que tienes entidades con las siguientes propiedades:
- categoría
Task
con propiedadescreated
priority
tags
- categoría
TaskList
con propiedadescreated
La siguiente consulta de propiedades solo de claves:
C#
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de C# de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Go de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
No correspondeJava
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Java de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de Node.js de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
No aplicablePHP
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Para obtener más información, consulta la API de PHP de Cloud Datastore documentación de referencia.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
No aplicableRuby
Para obtener información sobre cómo instalar y usar la biblioteca cliente de Cloud Datastore, consulta Bibliotecas cliente de Cloud Datastore. Si deseas obtener más información, consulta la documentación de referencia de la API de Ruby de Cloud Datastore.
Para autenticarte en Cloud Datastore, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
GQL
SELECT __key__ FROM __property__ WHERE __key__ >= KEY(__kind__, 'Task', __property__, 'priority')
Recopilará los siguientes pares de nombre de propiedad y categoría:
Task, priority
Task, tags
TaskList, created
Observa que los resultados incluyen propiedades de las categorías Task
y TaskList
, pero no incluyen la propiedad created
de la categoría Task
, porque se encuentra fuera del rango especificado para la consulta.