如何从Google App Engine数据存储中检索单个记录?

时间:2010-11-04 13:06:34

标签: python google-app-engine

使用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()功能的东西。

1 个答案:

答案 0 :(得分:6)

只需在任一查询的末尾添加.get()即可。来自the docs

  

执行查询,然后返回第一个结果,如果查询没有返回结果,则返回None。

     

get()表示“限制”为1,并覆盖GQL查询的LIMIT子句(如果有)。最多从数据存储区获取1个结果。

另请参阅.fetch(limit, offset=0),它允许您从查询中检索 limit 结果。