gqlQuery返回对象,想要键的列表

1 投票
1 回答
1315 浏览
提问于 2025-04-15 15:59

有没有办法把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

当然可以!你可以通过在 GqlQuery 对象上调用 .fetch(count) 来获取结果。其实这是推荐的做法,因为这样可以一次性获取一批结果,而不是一个一个地取,这样效率更高。

撰写回答