سؤال

هل هناك طريقة لتحويل كائن 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