如何按祖先/父级对Google App Engine查询进行排序?

2 投票
1 回答
878 浏览
提问于 2025-04-16 04:24

我想按照祖先来排序实体,GQL 参考中只提到了排序时的属性。我是否需要把父级存储为一个属性才能参与排序?

我想实现这样的效果:

Foo.all().ancestor(bar).order('ancestor').order('-value').fetch(100)

编辑:

我有这样的东西:

bar
 ├ spam
 │  ├ foo2 (value = 2)
 │  └ foo7
 └ egs
    ├ foo6
    └ foo5

我希望得到:[foo5, foo6, foo2, foo7]。我想我真正想要的是按祖先分组,然后再按value属性排序。

1 个回答

4

按照键排序时,系统会先根据祖先进行排序,然后再根据实体的ID或名称进行排序。如果你想只根据祖先来排序,而不想根据实体的ID或名称来排序,那你就需要明确地添加一个'ancestor'自引用属性来进行排序。

撰写回答