按Google App Engine上的密钥ID过滤查询

Sno*_*man 2 database google-app-engine

我知道有一种方法可以根据其密钥ID使用某个实体get_by_id(someId),但是有没有办法让ID高于某个指定值的实体?使用常规过滤器,我们可以做query.filter("customId >", someId),但是如何为内置密钥ID执行此操作?

Gre*_*reg 5

即使Key看起来像一个没有意义的大字符串,它实际上是你的应用程序ID,实体类型,然后是数字自动分配的ID,或你生成的键名(父母和名称空间也在那里)的组合,但同样的基本原则适用).

当您进行<或>比较,或在查询中使用"order by"时,它会针对这些单独的部分,而不是您看到的字符串编码.因此,鉴于app-ID和实体类型相同,您将按ID或键名部分进行比较或排序.文档在此解释.

在filter方法中,您可以使用'__key__'作为属性名,然后使用Key.from_path构造一个Key对象(至少在python中)