App Engine: Qual è il modo più veloce per verificare se la mia domanda datastore restituisce alcun risultato?

StackOverflow https://stackoverflow.com/questions/1661421

Domanda

mi piace per verificare se v'è alcun risultato per la mia domanda datastore nel Google App Engine datastore. Questa è la mia domanda:

users = User.all()
users.filter("hash =", current_user_hash)

Qual è il modo più veloce e più elegante per controllare se la mia domanda restituisce alcun risultato?

PS: So che un modo per farlo, ma sono molto sicuri se è molto efficiente ...

È stato utile?

Soluzione

Se hai bisogno anche di recuperare i risultati, il modo più efficace è quello di andare a prendere i risultati con .fetch (), e quindi verificare se la lista è non vuota. Se in realtà non c'è bisogno dei risultati, chiamare .count (1).

Quello che non dovrebbe fare è chiamare .count (1) se hai bisogno anche i risultati - questo ti richiedono di eseguire la query due volte

.

Altri suggerimenti

users.count(1) è probabilmente il modo più veloce per fare questo; users.fetch(1) sarebbe l'altro modo per ottenere questo, ma richiede il recupero un'intera entità; a seconda delle dimensioni di tale entità questo potrebbe essere piuttosto lento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top