gqlQuery возвращает объект, желаемый список ключей

StackOverflow https://stackoverflow.com/questions/1730694

  •  20-09-2019
  •  | 
  •  

Вопрос

Есть ли способ преобразовать объект 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())
Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top