在GQL reference名單__key__,鼓勵使用IN
關鍵字與值的列表,並從手構建一個關鍵的GQL查詢GQL查詢與鍵
SELECT * FROM MyModel WHERE __key__ = KEY('MyModel', 'my_model_key')
會成功。然而,使用的代碼,你會期望工作:
SELECT * FROM MyModel WHERE __key__ IN (KEY('MyModel', 'my_model_key1'),
KEY('MyModel', 'my_model_key2'))
在數據存儲瀏覽器
,還有的投訴「無效的GQL查詢字符串。」
格式化這種查詢的正確方法是什麼?
更新:這是不可能與當前的SDK。正如我在我的評論中指出的那樣,當使用列表時,只有引用(例如:1
或:email
)或int,float,string,boolean或null文字是可接受的列表條目。
第二次更新:我修復了這個錯誤,現在可以執行這樣的查詢。您可以在Google Code Hosting diff中找到Fix。
PS我知道有更有效的方式來在Python中完成此操作(無需構建GQL查詢)並使用remote_api,但每次調用remote_api都會違反配額。在配額不是(必然)免費的環境中,快速和骯髒的查詢非常有用。
您是否真的認爲在控制檯中手動獲取的實體數量將增加大量消耗的配額,如果您是通過remote_api實現的? –
不需要。我只是想知道如何正確構建查詢。我的文章中的第二個片段看起來不會是「無效的GQL查詢字符串」。 「WHERE __key__ IN」是否是無效的GQL? – bossylobster
雖然我仍然困惑你爲什麼要這樣做。這是獲取實體的特別低效的方式。 –