擷取查詢結果

建構查詢後,您可以指定多種擷取選項,用以進一步控管查詢傳回的結果。如要進一步瞭解如何建構應用程式的查詢,請參閱資料儲存庫查詢一文。

擷取單一實體

如果只想擷取與查詢相符的單一實體,請使用 Query.get() 方法 (或是 GqlQuery.get() 方法):

q = Person.all()
q.filter("last_name =", target_last_name)

result = q.get()

如此會傳回在索引中找到的與查詢相符第一個結果。

疊代查詢結果

在使用 QueryGqlQuery 物件的 run() 方法在查詢結果上進行疊代時,Cloud Datastore 會分批擷取結果。依照預設,每批會有 20 個結果,但可使用該方法的 batch_size 參數變更此值。您可以繼續反覆查詢查詢結果,直到傳回所有結果或是要求逾時為止。

從實體上擷取所選的屬性

如果只想擷取實體上所選取的屬性,而非整個實體,請使用投影查詢。相較於傳回完整的實體,這類查詢執行速度較快,費用也較低。

同樣的,純金鑰查詢只會將相符的金鑰傳回實體,而非完整的實體本身,藉此節省時間和資源。如要建立此類查詢,請在建構查詢物件時,設定 keys_only=True

q = Person.all(keys_only=True)

設定查詢限制

您可以指定查詢的「限制」,以此控管一批次傳回的結果上限數量。下列範例會從 Cloud Datastore 中擷取五位身高最高的人:

q = Person.all()
q.order("-height")

for p in q.run(limit=5):
  print "%s %s, %d inches tall" % (p.first_name, p.last_name, p.height)

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
App Engine standard environment for Python 2