羅傑,試試這個在你的開發環境,看看它的工作原理:
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext import db
class Score(db.Model):
level = db.IntegerProperty()
score = db.IntegerProperty()
submitted = db.IntegerProperty()
class MainHandler(webapp.RequestHandler):
def get(self):
level = 1
if Score.all().count() == 0:
Score(level = 1, score = 10, submitted = 10).put()
Score(level = 1, score = 10, submitted = 11).put()
Score(level = 1, score = 10, submitted = 12).put()
Score(level = 1, score = 11, submitted = 10).put()
Score(level = 1, score = 11, submitted = 20).put()
Score(level = 1, score = 12, submitted = 10).put()
q = Score.all().filter("level = ", level).order("-score").order("-submitted")
score_list = q.fetch(10)
self.response.out.write([
(s.level, s.score, s.submitted) for s in score_list ])
def main():
application = webapp.WSGIApplication([('/', MainHandler)],
debug=True)
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
你能否澄清「它似乎並不奏效。」你期望得到什麼,你會得到什麼? – gae123 2012-02-25 22:24:38
上面的例子被簡化了。除了獲得按'分數'排序的前10個分數的列表,然後按每個'分數'排序內的「已提交」排序。所以,如果有兩個相同的價值分數,最新的將是第一個。如果有100分相同的價值,我會得到10個最新的。這是否有用?如果是的話,我會開始在我的代碼中查看其他地方。 – 2012-02-25 22:35:11
我很確定我一直在我的代碼中做這個預期的結果。我想知道這些索引是不是最新的。在數據存儲中已有數據後,是否添加了相關索引? – gae123 2012-02-25 22:41:30