Recupera resultados de consultas

Después de construir una consulta, se pueden especificar opciones de recuperación para tener más control sobre los resultados que se muestran. Accede a consultas del almacén de datos para obtener más información acerca de cómo estructurar consultas en tu aplicación.

Recupera una sola entidad

Para recuperar solo una entidad única que coincida con tu consulta, usa el método Query.get() (o GqlQuery.get()):

q = Person.all()
q.filter("last_name =", target_last_name)

result = q.get()

Esto muestra el primer resultado que se encontró en el índice que coincide con la consulta.

Itera a través de los resultados de la consulta

Cuando iteras sobre los resultados de una consulta mediante el método run() de un objeto Query o GqlQuery, Cloud Datastore recupera los resultados por lotes. Según la configuración predeterminada, cada lote contiene 20 resultados, pero puedes cambiar este valor si usas el parámetro batch_size del método. Puedes seguir iterando a través de los resultados hasta que se muestren todos o hasta que se agote el tiempo de espera de la solicitud.

Cómo recuperar propiedades seleccionadas de una entidad

Para recuperar solo las propiedades seleccionadas de una entidad, en lugar de la entidad completa, usa una consulta de proyección. Este tipo de consulta se ejecuta más rápido y cuesta menos que las que muestran entidades completas.

Del mismo modo, una consulta de solo claves ahorra tiempo y recursos porque solo muestra las claves de las entidades con las que coincide, en lugar de las entidades completas en sí. Para crear este tipo de consulta, configura keys_only=True cuando construyas el objeto de consulta:

q = Person.all(keys_only=True)

Establece un límite para tu consulta

Puedes especificar un límite para tu consulta a fin de controlar el número máximo de resultados que se muestran en un lote. En el siguiente ejemplo, se recuperan las cinco personas más altas de Cloud Datastore:

q = Person.all()
q.order("-height")

for p in q.run(limit=5):
  print "%s %s, %d inches tall" % (p.first_name, p.last_name, p.height)

Próximos pasos