App Engine: Какой самый быстрый способ проверить, возвращает ли мой запрос хранилища данных какой-либо результат? - PullRequest
0 голосов
/ 02 ноября 2009

Мне нравится проверять, есть ли какие-либо результаты для моего запроса в хранилище данных в хранилище данных Google App Engine. Это мой запрос:

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

Какой самый быстрый и элегантный способ проверить, возвращает ли мой запрос какой-либо результат?

PS: я знаю способ сделать это, но я очень не уверен, если это очень эффективно ...

Ответы [ 2 ]

4 голосов
/ 02 ноября 2009

Если вам также нужно получить результаты, самый эффективный способ - получить результаты с помощью .fetch (), а затем проверить, не является ли список непустым. Если вам на самом деле не нужны результаты, позвоните .count (1).

То, что вы не должны делать, это вызывать .count (1), если вам также нужны результаты - для этого потребуется выполнить запрос дважды.

2 голосов
/ 02 ноября 2009

users.count(1), вероятно, самый быстрый способ сделать это; users.fetch(1) может быть другим способом для достижения этой цели, но требует извлечения целой сущности; в зависимости от размера этого объекта это может быть довольно медленным.

...