2012-04-16 104 views
2

我知道有一种方法可以使用get_by_id(someId)根据其密钥ID获取某个实体,但是有什么方法可以获得ID高于某个指定值的多个实体吗?使用常规筛选器,我们可以执行query.filter("customId >", someId),但是如何为内置的密钥ID执行此操作?通过Google App Engine上的密钥ID进行过滤查询

+0

重复的: http://stackoverflow.com/questions/2544565 /按实体过滤键名称在谷歌应用程序引擎上的python – dragonx 2012-04-16 14:07:36

+0

这是关键的名称。我在询问密钥ID。密钥ID是一个i​​nt值,其中密钥名称是字母数字。另一个问题是,来自链接问题的那个人是如何在关键名称上使用> =运算符的? – Snowman 2012-04-16 14:13:27

+1

@mohabithar - 同样的事情:key可以是long或string。 – 2012-04-16 14:23:36

回答

5

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

当您执行<或>比较或在查询中使用'order by'时,它与这些单独部分相对,而不是您看到的字符串编码。因此,鉴于应用程序ID和实体类型相同,您将按ID或键名部分进行比较或排序。该文件解释它here。 (至少在python)使用

在过滤器的方法则可以使用“__key__”作为属性名,然后构造一个密钥对象Key.from_path

相关问题