Una consulta recupera entidades de Firestore en modo Datastore que cumplen con un conjunto específico de condiciones.
La consulta opera en entidades de una categoría determinada, puede especificar filtros para los valores de propiedad, las claves y los principales de las entidades, y puede mostrar cero o más entidades como resultados. Una consulta también puede especificar órdenes de clasificación para secuenciar los resultados según los valores de propiedad. Los resultados incluyen todas las entidades que tienen al menos un valor por cada propiedad mencionada en los filtros y órdenes de clasificación, y cuyos valores de propiedad cumplen con todos los criterios de filtro especificados. La consulta puede mostrar entidades completas, entidades proyectadas o solo claves de entidad.
Una consulta típica incluye lo siguiente:
- El tipo de entidad al cual se aplica la consulta
- Cero o más filtros basados en los valores de las propiedades, las claves y los principales de las entidades
- Cero o más órdenes de clasificación para secuenciar los resultados
Cuando se ejecuta, la consulta recupera todas las entidades de ese tipo que satisfacen todos los filtros indicados, en el orden que se especificó. Las consultas se ejecutan en modo de solo lectura.
Nota: Para conservar la memoria y mejorar el rendimiento, las consultas deben especificar, siempre que sea posible, un límite en la cantidad de resultados que se muestran.
Cada consulta calcula los resultados mediante uno o más índices, que contienen claves de entidad en una secuencia especificada por las propiedades del índice y, de forma opcional, los principales de la entidad. Los índices se actualizan de forma incremental con los cambios que la aplicación haga a sus entidades, de modo que los resultados correctos de todas las consultas estén disponibles sin necesidad de realizar cálculos adicionales.
El mecanismo de consultas basado en índices admite una amplia variedad de consultas y es apropiado para la mayoría de las aplicaciones. Sin embargo, este mecanismo no admite algunos tipos de consulta que son comunes en otras tecnologías de base de datos. En particular, el motor de consultas del modo Datastore no admite las operaciones de unión y agregación. Consulta Restricciones de las consultas a continuación para obtener más información sobre las limitaciones en las consultas del modo Datastore.
Interfaz de consulta
A continuación, mostramos un ejemplo básico para realizar una consulta en una base de datos en modo Datastore. Recupera todas las tareas que aún no se hicieron con prioridad de 4 o más y las clasifica en orden descendente según la prioridad:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE done = FALSE AND priority >= 4 ORDER BY priority DESC
Usa estos modelos para ejecutar consultas.
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
No aplicableEstructura de la consulta
Una consulta puede especificar un tipo de entidad, cero o más filtros, y cero o más órdenes de clasificación.
Filtros
El conjunto de filtros de una consulta limita las propiedades, claves y los principales de las entidades que se recuperarán.
Filtros de propiedades
Un filtro de propiedad especifica lo siguiente:
- El nombre de una propiedad
- Un operador de comparación
- El valor de una propiedad
En este ejemplo, se muestran entidades Task marcadas como no realizadas:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE done = FALSE
La aplicación debe proporcionar el valor de la propiedad. No se lo puede referir ni calcular en términos de otras propiedades. Una entidad satisface el filtro si tiene una propiedad con el nombre dado, cuyo valor se compara con el valor especificado en el filtro, de acuerdo con la descripción del operador de comparación. Si la propiedad del nombre dado tiene un arreglo de valores, la entidad cumple los requisitos del filtro siempre que alguno de esos valores guarde con el valor especificado en el filtro la relación que describe el operador de comparación.
El operador de comparación puede ser cualquiera de las siguientes opciones:
Operador | Significado |
---|---|
EQUAL |
Igual que |
LESS_THAN |
Menor que |
LESS_THAN_OR_EQUAL |
Menor que o igual que |
GREATER_THAN |
Mayor que |
GREATER_THAN_OR_EQUAL |
Superior o igual a |
Filtros compuestos
Un filtro compuesto consta de más de un filtro de propiedad. En este ejemplo, se muestran entidades Task marcadas como no realizadas y con una prioridad de 4:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE done = FALSE AND priority = 4
Firestore en modo Datastore admite de forma nativa la combinación de filtros con solo el operador AND
.
Filtros de clave
Para filtrar el valor de la clave de una entidad, usa la propiedad especial __key__
:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE __key__ > KEY(Task, 'someTask')
Cuando se usa un comparador de desigualdad, se aplican los siguientes criterios para clasificar las claves, en orden:
- Ruta del principal
- Tipo de entidad
- Identificador (nombre de clave o ID numérico)
Los elementos de la ruta principal se comparan de manera similar: por tipo (string) y, luego, por nombre de clave o ID numérico. Los tipos y los nombres de clave son strings y se ordenan por valor de byte. Los ID numéricos son números enteros ordenados de forma numérica. Si varias entidades que tienen el mismo principal y tipo usan una combinación de ID numéricos y strings con nombre de clave, las entidades que tienen ID numéricos anteceden a las que tienen nombres de clave.
Las consultas sobre claves usan índices, al igual que las consultas sobre propiedades, y requieren índices personalizados en los mismos casos, salvo algunas excepciones: Cuando se usan filtros de desigualdad o un orden de clasificación ascendente en la clave, no se necesita un índice personalizado; cuando se usa un orden de clasificación descendente en la clave, sí. Al igual que con todas las consultas, el servidor de desarrollo crea entradas adecuadas en el archivo de configuración de índices cuando una consulta que requiere un índice personalizado se usa en el entorno de programación.
Órdenes de clasificación
Un orden de clasificación de consulta especifica:
- Un nombre de propiedad
- Una dirección de clasificación (ascendente o descendente). El orden de clasificación predeterminado es ascendente
En este ejemplo, se clasifican entidades Task por tiempo de creación en orden ascendente:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task ORDER BY created ASC
En este ejemplo, se clasifican entidades Task por tiempo de creación en orden descendente
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task ORDER BY created DESC
Si una consulta incluye varios órdenes de clasificación, estos se aplican en la secuencia especificada. En el siguiente ejemplo, primero se clasifica por prioridad descendente y, luego, por tiempo de creación ascendente:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task ORDER BY priority DESC, created ASC
Si no se especifica ningún orden de clasificación, los resultados se muestran en el orden en que se recuperaron en el modo Datastore.
Nota: Debido a la forma en que el modo Datastore ejecuta las consultas, si una consulta especifica filtros de desigualdad en una propiedad y órdenes de clasificación en otras propiedades, la propiedad que se use en los filtros de desigualdad deberá ordenarse antes que las demás propiedades.
Tipos especiales de consultas
Hay algunos tipos específicos de consultas que merecen una mención especial:
Consultas principales
Una consulta principal limita sus resultados a la entidad especificada y a sus secundarios. En este ejemplo, se muestran todas las entidades Task cuyo principal es una entidad TaskList especificada:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE __key__ HAS ANCESTOR KEY(TaskList, 'default')
Consultas sin categoría
Cuando una consulta no especifica la categoría ni el principal, se muestran todas las entidades de una aplicación del modo Datastore. Estas consultas sin categoría no pueden incluir filtros ni órdenes de clasificación para los valores de las propiedades. No obstante, pueden filtrar las claves de entidad y usar filtros principales. Para usar los filtros de clave, se puede especificar __key__
como el nombre de la propiedad:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * WHERE __key__ > KEY(Task, 'someTask')
Consultas de proyección
La mayoría de las consultas muestran entidades completas como resultado. Sin embargo, solo unas pocas propiedades de la entidad son relevantes para las aplicaciones. Las consultas de proyección te permiten hacer consultas solo sobre las propiedades específicas de una entidad que necesitas, con una latencia y un costo más bajos que mostrar la entidad completa.
Para las consultas de proyección, se deben indexar las propiedades especificadas.
Consultas de solo claves
Una consulta de solo clave (que es un tipo de consulta de proyección) muestra solo las claves de las entidades resultantes, en lugar de las entidades en sí, con una latencia y un costo más bajos que mostrar las entidades completas.
A menudo, es más rentable hacer primero consultas de solo clave y, luego, elegir un subconjunto de entidades de los resultados, en lugar de ejecutar una consulta general que puede arrojar más entidades que las que necesitas.
Sigue estos modelos para crear consultas de solo clave:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT __key__ FROM Task
Una consulta de solo clave es una operación pequeña y cuenta como una única lectura de entidad para la consulta en sí.
Proyecciones
Las consultas de proyección son similares a las consultas de SQL que tienen la siguiente forma.
SELECT priority, percent_complete FROM Task
Puedes usar todas las características de filtrado y orden disponibles para las consultas de entidad estándar, pero debes tener en cuenta estos límites.
La consulta de SQL de ejemplo muestra resultados abreviados con solo las propiedades especificadas, priority
y percent_complete
, con valores propagados. Todas las demás propiedades no se propagan. Aquí se explica cómo puedes elaborar esto como una consulta de proyecció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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT priority, percent_complete FROM Task
Sigue estos modelos para ejecutar la consulta de proyecció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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
No aplicableUna consulta de proyección que no usa la cláusula distinct on
es una operación pequeña y cuenta como una sola lectura de entidad.
Agrupación
Las consultas de proyección pueden usar la cláusula distinct on
a fin de garantizar que solo se muestre el primer resultado de cada combinación de valores para las propiedades especificadas. Se mostrará solo el primer resultado de las entidades que tengan los mismos valores para las propiedades que se proyectan.
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT DISTINCT ON (category) category, priority FROM Task ORDER BY category, priority
Valores de arreglos
El modo Datastore indexa cada valor de propiedad de arreglo único una vez por índice. Por lo tanto, para consultar si un arreglo contiene un valor, usa un filtro de igualdad.
Ten en cuenta lo siguiente cuando tus consultas incluyan propiedades con valores de arreglos.
Filtros de desigualdad
Debido a la forma en que se indexan, las entidades con múltiples valores para la misma propiedad pueden interactuar con los filtros de consulta y los órdenes de clasificación de maneras inesperadas y sorprendentes.
Si una consulta tiene varios filtros de desigualdad para una propiedad determinada, una entidad coincidirá con la consulta solo si al menos uno de sus valores individuales para esa propiedad satisface todos los filtros. Por ejemplo, si una entidad del tipo Task
tiene los valores fun
y programming
para la propiedad tag
, no coincidirá con la consulta:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE tag > 'learn' AND tag < 'math'
Cada uno de los valores tag
de la entidad cumple con la condición de uno de los filtros, pero ningún valor individual cumple con ambos.
Varios filtros de igualdad
A diferencia de los filtros de desigualdad, se pueden usar varios filtros de igualdad para consultar entidades que contienen un conjunto de valores. Por ejemplo, la misma entidad sí cumple con la siguiente consulta:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE tag = 'fun' AND tag = 'programming'
aunque ninguno de los valores tag
individuales de la entidad cumple con ambas condiciones del filtro.
Orden de clasificación
Del mismo modo, el orden de clasificación para las propiedades con valores múltiples es inusual. Debido a que estas propiedades aparecen una vez en el índice por cada valor único, el primer valor que se observa en el índice determina el orden de clasificación de una entidad.
Si no se usa una propiedad con valores múltiples en ningún filtro, puede suceder lo siguiente:
- Si la propiedad ordena los resultados de la consulta de forma ascendente, se usará el valor más pequeño de la propiedad para el ordenamiento.
- Si la propiedad ordena los resultados de la consulta de forma descendente, se usará el valor más elevado de la propiedad para el ordenamiento.
- Otros valores no afectan el orden de clasificación ni la cantidad de valores.
Esto tiene la consecuencia inusual de que la entidad con los valores de propiedad 1
y 9
antecede a una entidad con los valores 4
, 5
, 6
y 7
, en orden ascendente y descendente.
Si se usa una propiedad con valores múltiples en un filtro de igualdad, se ignora cualquier orden de clasificación sobre esa propiedad.
Si se usa una propiedad con valores múltiples en un filtro de desigualdad, puede suceder lo siguiente:
- Si la propiedad ordena los resultados de la consulta de forma ascendente, se usará el valor más pequeño que satisfaga todos los filtros de desigualdad de la consulta para el ordenamiento.
- Si la propiedad ordena los resultados de la consulta de forma descendente, se usará el valor más elevado que satisfaga todos los filtros de desigualdad de la consulta para el ordenamiento.
Ten en cuenta que si un conjunto de filtros de desigualdad en una propiedad se traduce como un filtro de igualdad, por ejemplo
WHERE tags >= 'math' AND tags <= 'math'
se ignorará cualquier orden de clasificación sobre esa propiedad, ya que los filtros evalúan lo mismo que el filtro de igualdad
WHERE tags = 'math'
Proyecciones y propiedades con arreglos de valores
La proyección de una propiedad con arreglos de valores no propagará todos los valores para esa propiedad. En lugar de ello, se mostrará una entidad independiente por cada combinación única de valores proyectados que coincidan con la consulta. Por ejemplo, supón que tienes una entidad del tipo Task
con dos propiedades con valores múltiples, tags
y collaborators
:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
No aplicableLuego, la consulta de proyección
SELECT tags, collaborators FROM Task WHERE collaborators < 'charlie'
mostrará cuatro entidades con las combinaciones de valores siguientes:
tags
= 'fun'
, collaborators
= 'alice'
tags
= 'fun'
, collaborators
= 'bob'
tags
= 'programming'
, collaborators
= 'alice'
tags
= 'programming'
, collaborators
= 'bob'
Cursores, límites y compensaciones
Puedes especificar un límite para tu consulta, a fin de controlar la cantidad máxima de resultados que se muestran en un lote. En el siguiente ejemplo se muestran, como máximo, cinco entidades Task:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task LIMIT 5
Los cursores de consulta permiten que una aplicación recupere los resultados de una consulta en los lotes convenientes sin la sobrecarga de una compensación de consulta. Después de realizar una operación de recuperación, la aplicación puede obtener un cursor, que es una string de bytes opaca que marca la posición en el índice del último resultado recuperado. La aplicación puede guardar esta string (por ejemplo, en la base de datos del modo Datastore, en caché o incorporada en una página web como un parámetro HTTP GET
o POST
codificado en base-64) y, luego, puede usar el cursor como el punto de partida para una operación de recuperación posterior y obtener el siguiente lote de resultados desde el punto en que finalizó la recuperación anterior. En una recuperación, también se puede especificar un cursor de fin, para limitar la extensión del conjunto de resultados mostrados.
En el siguiente ejemplo se explica el uso de los cursores para paginació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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
No aplicableAunque las bases de datos del modo Datastore admiten compensaciones de números enteros, debes evitar usarlos. En su lugar, usa cursores. Usar una compensación solo impide que se muestren las entidades omitidas en la aplicación, pero aun así se las recupera internamente. Las entidades omitidas afectan la latencia de la consulta y tu aplicación se factura por las operaciones de lectura requeridas para recuperarlas. Usar cursores en lugar de compensaciones te permite evitar todos estos costos.
Limitaciones de los cursores
Los cursores están sujetos a las siguientes limitaciones:
- Un cursor solo puede usarse en el mismo proyecto que realizó la consulta original y solo continúa en la misma consulta. No se puede recuperar resultados con un cursor sin configurar la misma consulta desde la que fue generado.
- Si se modifica alguno de los siguientes elementos, se puede seguir usando un cursor para las recuperaciones posteriores.
- cursor de inicio
- cursor de fin
- compensación
- límite
Hay una excepción si el orden de clasificación final de la consulta original se hizo según __key__
. En ese caso, puedes usar el cursor en una consulta inversa, que es la consulta original con cada orden de clasificación invertido. La consulta inversa puede modificar el cursor de inicio, el cursor de fin, la compensación y el límite.
Actualizaciones de datos y cursores
El cursor representa la ubicación en la lista de resultados después de que se muestra el último resultado. Un cursor no es una posición relativa en la lista (no es una compensación); es un marcador al que puede saltar una base de datos del modo Datastore cuando se inicia un análisis de índice para obtener resultados. Si los resultados de una consulta cambian entre distintos usos de un cursor, la consulta observará solo los cambios que se producen en los resultados después del cursor. Si aparece un resultado nuevo antes de la posición del cursor para la consulta, este no se mostrará cuando se recuperen los resultados que le siguen al cursor. De igual modo, si una entidad ya no es un resultado para una consulta, pero ha aparecido antes del cursor, los resultados que aparecen después del cursor no se modifican. Si el último resultado que se muestra se quita del conjunto de resultados, el cursor podrá ubicar el resultado siguiente de todas maneras.
Cuando se recuperan los resultados de la consulta, puedes usar un cursor de inicio y un cursor de fin para mostrar un grupo continuo de resultados. Cuando se usa un cursor de inicio y de fin para recuperar los resultados, no hay garantía de que el tamaño de los resultados será el mismo que cuando se generaron los cursores. Se pueden agregar o borrar entidades desde la base de datos entre el momento en que los cursores se generan y en que se utilizan en una consulta.
Restricciones para las consultas
La naturaleza del mecanismo de consulta de índice impone ciertas restricciones sobre lo que puede hacer una consulta. Las consultas del modo Datastore no admiten coincidencias de substring, coincidencias que no distinguen entre mayúsculas y minúsculas, o la denominada búsqueda en el texto completo. Los operadores NOT
, OR
y !=
no son compatibles de forma nativa, pero algunas bibliotecas cliente pueden agregar compatibilidad además del modo Datastore. Además, ten en cuenta lo siguiente:
Las entidades que carecen de una propiedad nombrada en la consulta se ignoran
No es necesario que las entidades del mismo tipo tengan las mismas propiedades. Para poder devolverse como resultado de una consulta, una entidad debe poseer un valor (posiblemente nulo) para cada propiedad nombrada en los filtros de consulta y los órdenes de clasificación. De lo contrario, se omitirá la entidad de los índices usados para ejecutar la consulta y, en consecuencia, no se incluirá en los resultados de la consulta.
Filtrar propiedades sin índice no muestra resultados
Una consulta no puede hallar valores de propiedad que no están indexados y tampoco puede ordenar las propiedades. Consulta la sección Propiedades no indexadas para obtener un análisis detallado sobre el tema.
Los filtros de desigualdad se limitan a una propiedad como máximo
Para no tener que explorar el índice completo, el mecanismo de consulta confía en que todos los resultados potenciales de una consulta sean adyacentes entre sí en el índice. Para satisfacer esta limitación, una sola consulta no puede usar comparaciones de desigualdad (LESS_THAN
, LESS_THAN_OR_EQUAL
, GREATER_THAN
, GREATER_THAN_OR_EQUAL
) que usen más de una propiedad en todos los filtros. Por ejemplo, la siguiente consulta es válida porque los dos filtros de desigualdad se aplican a la misma propiedad:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE created > DATETIME('1990-01-01T00:00:00z') AND created < DATETIME('2000-12-31T23:59:59z')
Sin embargo, esta consulta no es válida porque usa filtros de desigualdad en dos propiedades diferentes:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
# Invalid query! SELECT * FROM Task WHERE created > DATETIME('1990-01-01T00:00:00z') AND priority > 3
Recuerda que una consulta puede combinar filtros de igualdad (EQUAL
) para propiedades diferentes, junto con uno o más filtros de desigualdad en una sola propiedad. Por lo tanto, la siguiente consulta sí es válida:
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 Cloud Datastore para C#.
Comienza a usarlo
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 Cloud Datastore para Go.
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 Cloud Datastore para Java.
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 Cloud Datastore para Node.js.
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 Cloud Datastore para PHP.
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 Cloud Datastore para Python.
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 Cloud Datastore para Ruby.
GQL
SELECT * FROM Task WHERE priority = 4 AND done = FALSE AND created > DATETIME('1990-01-01T00:00:00z') AND created < DATETIME('2000-12-31T23:59:59z')
Cuando no se especifica un orden de clasificación, no se define el orden de los resultados de la consulta
Cuando una consulta no especifica un orden de clasificación, los resultados se muestran en el orden en que se recuperan. Este orden puede cambiar a medida que e