bos*_*ter 5 google-app-engine gql
在GQL参考中,鼓励将IN关键字与值列表一起使用,并从GQL查询中手动构造Key
SELECT * FROM MyModel WHERE __key__ = KEY('MyModel', 'my_model_key')
Run Code Online (Sandbox Code Playgroud)
将会成功.但是,使用您期望的代码:
SELECT * FROM MyModel WHERE __key__ IN (KEY('MyModel', 'my_model_key1'),
KEY('MyModel', 'my_model_key2'))
Run Code Online (Sandbox Code Playgroud)
在数据存储查看器中,存在"无效的GQL查询字符串"的投诉.
格式化此类查询的正确方法是什么?
更新:这不适用于当前的SDK.正如我在评论中指出的,当使用列表时,只有引用(例如:1或:email)或int,float,string,boolean或null literal是可接受的列表条目.
第二个更新:我修复了错误,现在可以执行此类查询.可以在Google Code Hosting diff中找到修复程序 .
PS我知道在Python中有更有效的方法(没有构建GQL查询)和使用remote_api,但每次调用remote_api都会计入配额.在配额不是(必然)免费的环境中,快速和脏的查询非常有用.
实施修复后,原始帖子中的代码片段就足够了:
SELECT * FROM MyModel WHERE __key__ IN (KEY('MyModel', 'my_model_key1'),
KEY('MyModel', 'my_model_key2'))
Run Code Online (Sandbox Code Playgroud)
PS我意识到我对原始帖子的评论可能不够清楚,无法作为对未来观众的答案。
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |