我知道有一种方法可以使用 get_by_id(someId)
根据其 key ID 获取某个实体,但是有没有办法获取 ID 高于某个指定值的多个实体?使用常规过滤器,我们可以执行 query.filter("customId >", someId)
,但如何为内置 key ID 执行此操作?
最佳答案
尽管 key 看起来像一个无意义的大字符串,但它实际上是您的应用程序 ID、实体类型以及数字自动分配 ID 或您生成的 key 名称(父项和 namespace 是也在那里,但适用相同的基本原则)。
当您进行 < 或 > 比较,或在查询中使用“order by”时,它针对的是这些单独的部分,而不是您看到的字符串编码。因此,假设应用程序 ID 和实体类型相同,那么您将按 ID 或键名部分进行比较或排序。文档对其进行了解释 here .
在过滤器方法中,您可以使用'__key__' 作为属性名称,然后使用Key.from_path 构造一个Key 对象(至少在python 中)。
关于database - 在 Google App Engine 上按 key ID 过滤查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10174901/