Recupero dei risultati delle query

Dopo aver creato una query, puoi specificare una serie di opzioni di recupero per controllare ulteriormente i risultati restituiti. Per saperne di più sulla strutturazione delle query per la tua app, consulta Query Datastore.

Recupero di una singola entità

Per recuperare una sola entità corrispondente alla query, utilizza il metodo Query.get() (o GqlQuery.get()):

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

result = q.get()

Restituisce il primo risultato trovato nell'indice che corrisponde alla query.

Iterazione tra i risultati delle query

Quando esegui l'iterazione dei risultati di una query utilizzando il metodo run() di un oggetto Query o GqlQuery, Cloud Datastore recupera i risultati in batch. Per impostazione predefinita, ogni batch contiene 20 risultati, ma puoi modificare questo valore utilizzando il parametro batch_size del metodo. Puoi continuare a scorrere i risultati della query finché non vengono restituiti tutti o la richiesta non scade.

Recupero delle proprietà selezionate da un'entità

Per recuperare solo le proprietà selezionate di un'entità anziché l'intera entità, utilizza una query di proiezione. Questo tipo di query viene eseguito più rapidamente e costa meno di una che restituisce entità complete.

Allo stesso modo, una query basata solo su chiavi consente di risparmiare tempo e risorse restituendo solo le chiavi delle entità corrispondenti, anziché le entità complete. Per creare questo tipo di query, imposta keys_only=True durante la creazione dell'oggetto query:

q = Person.all(keys_only=True)

Impostare un limite per la query

Puoi specificare un limite per la query per controllare il numero massimo di risultati restituiti in un batch. L'esempio seguente recupera le cinque persone più alte da 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)

Passaggi successivi