gqlQuery返回对象,想要键的列表
有没有办法把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) 来获取结果。其实这是推荐的做法,因为这样可以一次性获取一批结果,而不是一个一个地取,这样效率更高。