我在Python中使用Google App Engine。
在我的数据库中,我有一些包含用户分数的实体。所以我想在特定用户的排名上做一个页面。要做到这一点,我需要得到比该用户得分高的5位用户和得分低于该用户的5位用户,以及该特定用户在数据库中的位置。我可以使用cursor()方法来获取编码的光标。但是,我无法在用户身份之前获得5个实体,即便如此,我也无法在数据库中获得用户的位置。也许我可以使用偏移来进行查询,但是如何获得实体的偏移?
答案 0 :(得分:2)
为什么不两次查询数据?对于分数较高的用户,按降序排列。适用于分数较低的用户。在每个查询中获取五条记录。
答案 1 :(得分:0)
如果你真的需要用户的绝对排名,你应该使用app-engine-ranklist库。与SQL数据库一样,App Engine没有“排名”的内在概念,因为结果可以通过多种方式排序,因此如果您需要它,您需要自己实现它。
或者,如果您只需要用户当前排名两侧的用户,请参阅Kevin P的解决方案。