我使用了另一个技巧,因为我需要的数据格式是一个字典列表。在这种情况下,我运行基于日期时间的查询,从返回的结果中创建字典,然后按数字计数器属性排序。反向排序给我一个降序。请记住,我只请求了10个结果,在一个相当小的数据存储中。
q = food.Food.all()
q.filter("last_modified <=", now)
q.filter("last_modified >=", hour_ago)
ents = q.fetch(10)
if ents:
results = [{
"name": ent.name,
"counter": ent.counter
} for ent in ents]
results.sort(reverse=True)
例子结果:
[{'counter': 111L, 'name': u'wasabi'}, {'counter': 51L, 'name': u'honeydew'}, {'counter': 43L, 'name': u'mars bar'}, {'counter': 37L, 'name': u'scallop'}, {'counter': 33L, 'name': u'turnip'}, {'counter': 29L, 'name': u'cornbread'}, {'counter': 16L, 'name': u'mackerel'}, {'counter': 10L, 'name': u'instant coffee'}, {'counter': 3L, 'name': u'brussel sprouts'}, {'counter': 2L, 'name': u'anchovies'}]