2010-11-04 124 views
2

使用谷歌App Engine和GQL和Python:如何從Google App Engine數據存儲檢索單個記錄?

在數據存儲區我有類似如下的

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對象中的一件事,而無需經歷一個對我而言似乎有點奇怪的循環過程。

我也試過使用Thing.gql("WHERE domain=:1 LIMIT 1", "example.com")語法無濟於事。他們都似乎返回集合。

我來自.NET背景,對於Python和App Engine是新手,但我正在尋找類似於.FirstOrDefault()功能的東西。

回答

6

只需將.get()添加到任一查詢的末尾即可。來自the docs

執行查詢,然後返回第一個結果,如果查詢沒有返回結果,則返回None。

get()意味着1的「限制」,並且覆蓋GQL查詢的LIMIT子句(如果有的話)。最多從數據存儲中獲取1個結果。

.fetch(limit, offset=0)見,這將允許您檢索限制從查詢結果。

+0

我已經開始使用.fetch(1)方法,但是要返回實際的對象,我仍然需要使用currentThing [0]。 .get()是否也需要這個? – Aaron 2010-11-04 13:48:03

+0

顯然它不!這正是我需要的。 – Aaron 2010-11-04 13:49:10

相關問題