gqlQuery возвращает объект, хочет список ключей - PullRequest
1 голос
/ 13 ноября 2009

Есть ли способ преобразовать объект GqlQuery в массив ключей, или есть способ заставить запрос вернуть массив ключей? Например:

items = db.GqlQuery("SELECT __key__ FROM Items")

возвращает объект, содержащий ключи:

<google.appengine.ext.db.GqlQuery object at 0x0415E210>

Мне нужно сравнить его с массивом ключей, которые выглядят так:

[datastore_types.Key.from_path(u'Item', 100L, _app_id_namespace=u'items'),
 ..., datastore_types.Key.from_path(u'Item', 105L, _app_id_namespace=u'fitems')]

Примечание: я могу обойти проблему, запросив сохраненные объекты, а затем вызвав .key (), но это кажется расточительным.

items = db.GqlQuery("SELECT * FROM Items")
keyArray = []
for item in items:
  keyArray.append(item.key())

1 Ответ

3 голосов
/ 13 ноября 2009

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

...