建構查詢後,您可以指定多個擷取選項,進一步控管傳回的結果。要進一步瞭解如何建構應用程式的查詢,請參閱資料儲存庫查詢的說明。
擷取單一實體
如果只想擷取與查詢相符的單一實體,請使用 PreparedQuery.asSingleEntity() 方法:
這會傳回第一個在索引中找到,且與查詢相符的結果。(若有多個相符的結果,則會拋出一個 TooManyResultsException。)
疊代查詢結果
使用 PreparedQuery.asIterable() 和 PreparedQuery.asIterator() 方法疊代查詢結果時,Cloud Datastore 會分批擷取結果。每批預設會有 20 個結果,但您可使用 FetchOptions.chunkSize() 變更這個值。您可以繼續反覆查詢查詢結果,直到傳回所有結果或是要求逾時為止。
從實體上擷取所選的屬性
如果只要擷取實體的部分屬性 (而非整個實體),請使用投影查詢。相較於傳回完整的實體,這類查詢執行速度較快,費用也較低。
同樣的,純索引鍵查詢可以只傳回相符實體的索引鍵,而非整個實體,藉此節省時間和資源。如要建立這類查詢,請使用 Query.setKeysOnly() 方法:
設定查詢限制
您可以指定查詢的「限制」,以此控管一批次傳回的結果上限數量。下列範例會從 Cloud Datastore 中擷取五位身高最高的人:
後續步驟
- 瞭解在 Cloud Datastore 中查詢的常見限制。
- 瞭解查詢游標,應用程式可運用這項功能分批擷取查詢結果,十分方便。
- 瞭解資料的一致性,以及如何將資料一致性運用於不同類型的 Cloud Datastore 查詢。
- 瞭解 Cloud Datastore 查詢的基本語法與結構。