我怎样才能查询直接后代?

sor*_*486 6 google-app-engine google-cloud-datastore

假设我有实体a,b和c都是相同的类型,情况是这样的:

实体a是实体b的父实体b实体b是实体c的父实体

现在,如果我执行以下查询

query = ndb.Query(ancestor=a.key)
result = query.fetch()
Run Code Online (Sandbox Code Playgroud)

结果将包含b和c实体.有没有办法可以过滤掉c,这样才能只保留直接后代的实体?除了我通过结果并删除它们之外的任何方式我的意思是.

Nic*_*son 4

执行此操作的唯一方法是修改架构,添加KeyProperty引用实体的直接父级的“父级”,然后对其进行过滤。

  • 另请注意,祖先查询的结果实际上也包含 a (假设它们都具有相同的类型)。您还可以在每个实体中拥有一个“级别”属性,其中根的级别为 0,其直接子级的级别为 1,其子级的级别为 2,依此类推。 (4认同)