размещение отсортированной записи в хранилище данных Google Appengine - PullRequest
0 голосов
/ 03 марта 2010

Я бы хотел определить, в каком месте находится конкретная запись, но соответствующий запрос GQL ускользает от меня. В идеале я хотел бы знать следующие детали, которые должны быть известны в хранилище данных. Я просто не могу понять, как это определить. Может кто-нибудь помочь?

  • размещение конкретной записи (при заданной сортировке, т. Е. По определенному свойству)
  • общее количество существующих записей (без их извлечения, только количество)
  • следующая запись в списке (я думаю, что пока я могу получить место размещения, я могу сделать правильный запрос, чтобы получить следующий, просто получив 2 и взяв последний)

Может кто-нибудь помочь?

Ответы [ 2 ]

2 голосов
/ 03 марта 2010

Если вы используете Python, ознакомьтесь с проектом google-app-engine-ranklist , который реализует список рангов в хранилище данных App Engine.

0 голосов
/ 03 марта 2010

GQL очень ограничен и существует только для того, чтобы дать людям, застрявшим в мышлении SQL, немного более легкий переход к использованию хранилища данных App Engine. Вы не можете делать ничего из того, что хотите делать с синтаксисом GQL.

Предполагая, что вы используете python, второе можно сделать, вызвав метод .count () объекта db.Query или db.GqlQuery, с оговоркой, что вы должны указать максимальное число, которое будет учитываться как параметр count (), и этот максимум не может быть больше 1000.

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

Ничто из этого не будет эффективным; хранилище данных не предназначено для такого рода вещей.

...