Paw*_*ski 35 google-app-engine gql
我想构建GQL查询以使用其数字ID获取对象.我在App管理控制台的Datastore查看器中这样做,所以我不能使用Model.get_by_id(numeric_id).就像是
SELECT * FROM Model WHERE id = <numeric_id>
Run Code Online (Sandbox Code Playgroud)
也行不通.
Sax*_*uce 76
试试这个:
SELECT * FROM Model where __key__ = KEY('Model', <numeric_id>)
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎没有办法编写相当于的查询
SELECT * FROM Model WHERE id = <numeric_id>
Run Code Online (Sandbox Code Playgroud)
这将选择具有给定id的所有Model实体.如果你对某些东西感到满意的话
SELECT * FROM Model WHERE id = <numeric_id> AND parent IS NULL
Run Code Online (Sandbox Code Playgroud)
你可以用类似的东西
SELECT * FROM Model where __key__ = KEY('Model', <numeric_id>)
Run Code Online (Sandbox Code Playgroud)
但是,如果您的实体确实有父级,则需要将其指定为密钥的一部分,例如
SELECT * FROM Model where __key__ = KEY('ParentModel', <parent_name_or_id>, 'Model', <numeric_id>)
Run Code Online (Sandbox Code Playgroud)
如果父级本身有父级,则还需要指定父级.(祖父母离开父母,依此类推.)
当然,如果您不限于GQL(如果您使用的是Python,Go或Java),则可以查询键,解码它们并按ID过滤,然后获取相应的实体.但当然,这在数据存储查看器中不起作用,因为您只能使用GQL.
| 归档时间: |
|
| 查看次数: |
12444 次 |
| 最近记录: |