究竟是什么.get()从Google App Engine数据存储区返回?什么是"第一"结果?

时间:2016-03-09 01:34:57

标签: python google-app-engine google-cloud-datastore

我的那种看起来像这样:

class userScore(db.Model):
    # stores info about each users' score
    created = db.DateTimeProperty(auto_now_add = True)
    username = db.StringProperty(required=False)
    score = db.StringProperty(required=False)

我检索给定用户的得分如下:

username = 'John'
userScore.all().filter('username = ', username).get()

当每个用户只有一个具有一个分数的实体时,这很有效。但是,如果我为同一个用户提供多个不同分数的实体呢? E.g。

created username score
1/30/16 John 100
1/31/16 John 99
1/28/16 John 101

问题

将.get()始终返回最近的结果,即1/31/16 John 99?

我一直在阅读model.get(),但我无法弄清楚。

更新/详情

根据documentation,.get()"执行查询并返回第一个结果,如果没有找到结果则返回None"。我想要了解的是第一个意味着什么。感谢Dan Cornilescu帮助我澄清我实际要问的内容。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您代码中的.get()不是model.get(),这可能会让您失望。

userScore.all()Model.all(),返回Query,因此您的.get()实际上是Query.get(),它会返回一个匹配结果列表,如果您愿意,可以使用Query.order()进行排序/订购。