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

Aar*_*ron 2 python google-app-engine

使用Google App Engine以及GQL和Python:

在我的数据存储区中,我有以下内容

class Thing(db.Model):
   domain = db.StringProperty(required=True)
   name = db.StringProperty()
   ...more...
Run Code Online (Sandbox Code Playgroud)

我有我的经纪人

currentThing = db.GqlQuery("SELECT * FROM Thing WHERE domain=:1 LIMIT 1",
                                       "example.com")
Run Code Online (Sandbox Code Playgroud)

我知道这将在MOST返回一个东西,但我似乎无法找到一种方法来收集Thing对象中的那一件事而不经历一个对我来说似乎有点奇怪的循环过程.

我也尝试使用Thing.gql("WHERE domain=:1 LIMIT 1", "example.com")语法无济于事.他们似乎都回归了收藏品.

我来自.NET背景,不熟悉Python和App Engine,但我正在寻找类似于.FirstOrDefault()功能的东西.

Wil*_*hen 6

只需.get()在任一查询的末尾添加一个.来自文档:

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

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

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