使用Google App Engine以及GQL和Python:
在我的数据存储区中,我有类似以下的内容
class Thing(db.Model):
domain = db.StringProperty(required=True)
name = db.StringProperty()
...more...
在我的处理程序中我有
currentThing = db.GqlQuery("SELECT * FROM Thing WHERE domain=:1 LIMIT 1",
"example.com")
我知道这将在MOST返回一件事但我似乎无法找到一种方法来收集Thing对象中的那一件事而不经历一个对我来说似乎有点奇怪的循环过程。
我也尝试使用Thing.gql("WHERE domain=:1 LIMIT 1", "example.com")
语法无济于事。他们似乎都回归了收藏。
我来自.NET背景,不熟悉Python和App Engine,但我正在寻找类似于.FirstOrDefault()功能的东西。
答案 0 :(得分:6)
只需在任一查询的末尾添加.get()
即可。来自the docs:
执行查询,然后返回第一个结果,如果查询没有返回结果,则返回None。
get()表示“限制”为1,并覆盖GQL查询的LIMIT子句(如果有)。最多从数据存储区获取1个结果。
另请参阅.fetch(limit, offset=0)
,它允许您从查询中检索 limit 结果。