Это близко к решению, предоставленному Габриэлем, но не извлекает результаты, оно просто считает их:
count = 0
q = YourEntityClass.all().filter('myval = ', 2)
countBatch = q.count()
while countBatch > 0:
count += countBatch
countBatch = q.with_cursor(q.cursor()).count()
logging.info('Count=%d' % count)
Отлично работает для моих запросов и быстро (1,1 секунды для подсчета 67 000 объектов)
Обратите внимание, что запрос не должен быть фильтром неравенства или набором, иначе курсор не будет работать, и вы получите это исключение:
AssertionError: курсор недоступен для MultiQuery (запросы с использованием операторов "IN" или "! =")