App Engine: Qual è il modo più veloce per verificare se la mia domanda datastore restituisce alcun risultato?
-
12-09-2019 - |
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 ...
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.