A obter resultados da consulta

Depois de criar uma consulta, pode especificar várias opções de obtenção para controlar ainda mais os resultados que devolve. Consulte as consultas da base de dados para obter mais informações sobre a estruturação de consultas para a sua app.

Obter uma única entidade

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

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

result = q.get()

Isto devolve o primeiro resultado encontrado no índice que corresponde à consulta.

Iterar os resultados da consulta

Quando itera os resultados de uma consulta através do método run() de um objeto Query ou GqlQuery, o Cloud Datastore obtém os resultados em lotes. Por predefinição, cada lote contém 20 resultados, mas pode alterar este valor através do parâmetro batch_size do método. Pode continuar a iterar os resultados da consulta até que todos sejam devolvidos ou o pedido expire.

Obter propriedades selecionadas de uma entidade

Para obter apenas as propriedades selecionadas de uma entidade em vez da entidade completa, use uma consulta de projeção. Este tipo de consulta é executado mais rapidamente e custa menos do que uma consulta que devolve entidades completas.

Da mesma forma, uma consulta apenas com chaves poupa tempo e recursos ao devolver apenas as chaves das entidades que correspondem, em vez das próprias entidades completas. Para criar este tipo de consulta, defina keys_only=True ao criar o objeto de consulta:

q = Person.all(keys_only=True)

Definir um limite para a sua consulta

Pode especificar um limite para a sua consulta de modo a controlar o número máximo de resultados devolvidos num lote. O exemplo seguinte obtém 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)

O que se segue?