假设我有一个包含学校、类(class)和学生模型的模型。 在这个模型中,类(class)是学校的 child ,学生是类(class)的 child 。我想要的是让所有学生按类(class)分组。
使用 NDB 我可以通过以下方式联系学校 A 的学生:
school_key = ndb.Key( 'School', 'A' )
all_students_in_A = Student.query( ancestor = school_key ).fetch( )
但是,我想让学生按类(class)分组。查看文档,查询接受 group_by 参数,但仅适用于模型的实际字段。
最佳答案
我一直在使用 itertools 中的 python groupby 函数来后期处理和分组实体。
您的选择需要按要求的顺序排序,在您的情况下是按键,因为您的 parent 在键中。
这种方法将维持顺序。
http://docs.python.org/2/library/itertools.html#itertools.groupby
我得到的代码不容易共享,因为我拥有的分组功能是存储/可授权查询实体的一部分,该实体允许按结果项的多个属性进行分组,并且实现分布在许多方法中。但是,如果您想查看一些代码,请大声说出来。
关于google-app-engine - 在 NDB 查询中按父级分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19770742/