2

在 Google App Engine 的 ndb 上,我使用以下内容检索所有实体并根据它们的等级对它们进行排序:

ranks = Member.query().order(-Member.grade)

然后我想知道特定成员的位置:

i = 0
for rank in ranks:
    if rank.account == 'abc'
        position = i
        break
    i += 1

我的问题:是否有等效的 ndb 操作来查找特定实体的位置?谢谢。

4

2 回答 2

2

我相信它可以分两步完成

  1. 检索帐户为“abc”的条目

    目标 = Member.query(Member.account=='abc').get()

  2. 查询评分较高的条目

    n = Member.query(Member.grade>target.grade).count()

然后你得到目标的等级为 n+1

于 2014-08-23T14:43:11.997 回答
1

看起来您正在尝试查找成员的等级。看看http://code.google.com/p/google-app-engine-ranklist/这将使您能够通过查询找到排名,而无需遍历所有分数。

于 2013-01-24T05:30:46.257 回答