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

私はそれが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 に答える