Django + AppEngine насчитывает более 1000 записей - PullRequest
1 голос
/ 03 ноября 2010

Я пытаюсь посчитать количество сущностей в моей базе данных, которые были созданы между определенными датами.

Я знаю, что Google снял ограничение на выборку более 1000 результатов на запрос, но каждый раз, когда я пытаюсь использовать удаленный API, я получаю только 1000 результатов.

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

Спасибо.
Netanel

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

Ограничение было снято в более поздних версиях SDK, поэтому вы можете проверить его и обновить.

Это все еще не полностью решит вашу проблему, хотя ... проблема в том, что с подсчетами GAE очень плохая идея - потому что это не таблица (это скорее распределенный массив) всякий раз, когда вы выполняете подсчет на самом деле он должен поразить (и, возможно, получить, я не уверен) каждый из объектов, соответствующих вашему запросу. Это действительно дорогая операция, поэтому, если вы делаете это много, вы без необходимости расходуете ресурсы. Если у вас достаточно объектов, вы можете даже достичь 30-секундного лимита запроса.

Взгляните на другие более масштабируемые способы сделать это, например, уменьшить карту (сосчитать и сохранить счетчик за минуту, затем за каждый час, затем за день, за неделю, за месяц и т. Д.) Или счётчик .

1 голос
/ 19 ноября 2010
Model.gql("WHERE creation_date >= :start_date AND creation_date <= :end_date", 
            start_date=startdate, end_date=enddate).count()

должно возвращать, сколько объектов соответствует вашему запросу, даже если у вас больше 1000.

Вы используете по крайней мере v1.3.6 из SDK , так как этогде снято ограничение по количеству?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...