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

时间:2012-04-16 13:16:29

标签: database google-app-engine

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

1 个答案:

答案 0 :(得分:5)

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

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

在filter方法中,您可以使用'__key__'作为属性名,然后使用Key.from_path

构造一个Key对象(至少在python中)