Como recuperar os resultados da consulta

Após a criação de uma consulta, é possível especificar várias opções de recuperação para controlar ainda mais os resultados retornados. Acesse Consultas do Datastore para mais informações sobre a estruturação de consultas para o aplicativo.

Como recuperar uma única entidade

Para recuperar apenas uma entidade correspondente à sua consulta, use o método Query.get() (ou GqlQuery.get()):

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

result = q.get()

Isso retorna o primeiro resultado encontrado no índice que corresponde à consulta.

Como iterar pelos resultados de consulta

Ao iterar os resultados de uma consulta usando o método run() de um objeto Query ou GqlQuery, o Cloud Datastore recupera os resultados em lotes. Por padrão, cada lote contém 20 resultados, mas você pode alterar esse valor usando o parâmetro batch_size do método. É possível continuar iterando pelos resultados da consulta até que todos sejam retornados ou a solicitação expire.

Como recuperar propriedades selecionadas de uma entidade

Para recuperar apenas as propriedades selecionadas de uma entidade, e não toda a entidade, use uma consulta de projeção. Esse tipo de consulta é executado com maior rapidez e custa menos que uma consulta que retorna entidades completas.

Da mesma forma, uma consulta somente de chaves economiza tempo e recursos ao retornar apenas as chaves das entidades correspondentes, e não as entidades completas. Para criar esse tipo de consulta, defina keys_only=True ao criar o objeto de consulta:

q = Person.all(keys_only=True)

Como definir um limite para a consulta

Você pode especificar um limite para a consulta para controlar o número máximo de resultados retornados em um lote. No exemplo a seguir, recuperamos as cinco pessoas mais altas do 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óximas etapas