代码之家  ›  专栏  ›  技术社区  ›  Aaron

如何从Google应用程序引擎数据存储中检索单个记录?

  •  2
  • Aaron  · 技术社区  · 14 年前

    使用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")
    

    我知道这最多会返回一个东西,但我似乎找不到一种方法来收集一个东西在一个东西的对象不经过一个循环过程,似乎有点奇怪我。

    我也试过用 Thing.gql("WHERE domain=:1 LIMIT 1", "example.com") 语法无效。他们似乎都在归还收藏品。

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

    1 回复  |  直到 14 年前
        1
  •  6
  •   Will McCutchen    14 年前

    只需添加一个 .get() 在任何一个查询的结尾。从 the docs :

    执行查询,然后返回第一个结果;如果查询未返回结果,则返回“无”。

    get()表示“limit”为1,并重写GQL查询的limit子句(如果有的话)。最多从数据存储中获取1个结果。

    .fetch(limit, offset=0) ,它将允许您检索 查询结果。