2009-11-13 3 views
1

Existe-t-il un moyen de convertir l'objet GqlQuery en un tableau de clés ou existe-t-il un moyen de forcer la requête à retourner un tableau de clés? Par exemple:gqlQuery renvoie l'objet, veut la liste des clés

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

retourne un objet contenant les clés:

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

que je dois le comparer à un tableau de clés qui ressemblent à:

[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')] 

Note: Je peux contourner le problème en interrogeant les objets stockés, puis en appelant .key(), mais cela semble inutile.

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

Répondre

3

Certainement - vous pouvez aller chercher les résultats en appelant .fetch (count) sur l'objet GqlQuery. C'est la méthode recommandée, en fait - l'itération des extractions aboutit à des lots, et est donc moins efficace.

+0

Fonctionne comme un charme –

Questions connexes