【问题标题】:Google App Engine ndb: find the position of an order query listGoogle App Engine ndb:查找订单查询列表的位置
【发布时间】:2013-01-07 17:52:31
【问题描述】:

在 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 操作来查找特定实体的位置?谢谢。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore data-modeling


    【解决方案1】:

    我相信可以分两步完成

    1. 获取帐号为'abc'的条目

      target = Member.query(Member.account=='abc').get()

    2. 查询成绩较高的条目

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

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

    【讨论】:

      【解决方案2】:

      您似乎正在尝试查找成员的等级。看看http://code.google.com/p/google-app-engine-ranklist/,它可以让您通过查询找到排名,而无需遍历所有分数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-27
        • 1970-01-01
        • 2019-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多