gqlQuery возвращает объект, желаемый список ключей
-
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.Фактически, это рекомендуемый способ - повторная выборка приводит к пакетным результатам и поэтому менее эффективна.
Не связан с StackOverflow