App Engine: Was ist der schnellste Weg, um zu überprüfen, ob meine Datenspeicher -Abfrage ein Ergebnis zurückgibt?
-
12-09-2019 - |
Frage
Ich möchte überprüfen, ob es ein Ergebnis für meine Datenspeicherabfrage im Google App Engine -DataStore gibt. Das ist meine Frage:
users = User.all()
users.filter("hash =", current_user_hash)
Was ist der schnellste und eleganteste Weg, um zu überprüfen, ob meine Abfrage ein Ergebnis zurückgibt?
PS: Ich weiß, dass es einen Weg ist, aber ich bin mir sehr nicht sicher, ob es sehr effizient ist ...
Lösung
Wenn Sie auch die Ergebnisse abrufen müssen, besteht der effizienteste Weg darin, die Ergebnisse mit .Fetch () abzurufen und dann zu überprüfen, ob die Liste nicht leer ist. Wenn Sie die Ergebnisse nicht benötigen, rufen Sie .Count (1) an.
Was du sollte nicht TO IS CALL .COUNT (1) Wenn Sie auch die Ergebnisse benötigen, muss die Abfrage zweimal ausgeführt werden.
Andere Tipps
users.count(1)
ist wahrscheinlich der schnellste Weg, dies zu tun; users.fetch(1)
wäre der andere Weg, dies zu erreichen, erfordert jedoch eine ganze Entität; Abhängig von der Größe dieser Entität könnte dies ziemlich langsam sein.