Конечно, вы можете сосчитать все сущности в вашем роде, используя keys()
... вплоть до тех пор, пока не столкнетесь с той же проблемой, которая заключается в том, что ваш запрос занимает слишком много времени. Я не знаю, как далеко вы можете пройти, но я сомневаюсь, что вы достигнете миллионов. Этот подход, вероятно, будет работать только для тысяч.
В хранилище данных нет хорошего эквивалента SELECT COUNT(*)
. Вы можете отслеживать добавления и удаления в счетчике, если вам нужен актуальный ответ. Если вам нужно только приблизительное значение, вы можете использовать карту / уменьшить (см. Свойство __scatter__
) или просто посмотреть статистику, которую Google периодически пересчитывает:
https://cloud.google.com/datastore/docs/concepts/stats