2013-12-10 43 views
1

這就是我的 - 爲什麼它不工作? thing_keys是來自ThingsTable的數據存儲鍵的列表。我該如何做一個投影查詢,並且還檢索多個條目(來自給定的鍵列表)

q = db.Query(ThingsTable, projection=['name', 'duration', 'cost','next_start_date', 'rate_ave_overall']) 

courses = q.get(thing_keys) 

_______ 

哪些呢是工作,當我使用: 課程= ThingsTable.get(thing_keys)

我想要做性能方面的原因的投影 - 只需選擇字段。這一定是可能的 - 任何想法?

+0

請注意,沒有表格。你應該遍歷q.run()並看看你得到了什麼。 –

回答

1

這聽起來像你試圖做的是一個get和投影查詢的混合。這不可能使用數據存儲。

在數據存儲中發出查詢時,它使用索引爲滿足該查詢的實體查找鍵列表,然後查找這些實體並將其返回。投影查詢利用了索引由屬性組成的事實,因此可以避免執行第二次調用來實際獲取實體。但是,如果您已經擁有所需的鍵列表,則可以一起跳過索引,然後跳轉到所需的實體。

通過直接獲取,您實際上可以通過避免在索引上運行查詢來獲得更好的性能優勢。如果您仍然擔心獲取整個實體的性能,您應該考慮將該實體分解爲您大多數時間需要的屬性,然後再分解其餘屬性。

Here是關於如何存儲實體的更多信息,如果您有興趣。

相關問題