2012-08-28 81 views
5

鑑於我構建的一個密鑰,我想打到數據存儲庫以查看它是否存在,但我想要最便宜(及時)的方式來做到這一點。我所尋找的就像一個只有鍵的查詢,但是來自get,例如, my_key.get(keys_only =真)。這樣的動物是否存在?它看起來不像我。如果不是,還有其他方法可以實現我的目標嗎?app engine ndb Key.get只返回密鑰?

謝謝。

+0

您可能會發現檢索具有最小屬性的投影很有用。不知道這是否會更快。 – Jeremy

回答

6

不,這個功能不存在。由於並非所有實體都被編入索引,所以沒有捷徑 - 測試密鑰是否存在的唯一方法是嘗試獲取它,然後您可以免費獲得實體數據(無論如何是磁盤操作 - 有一點序列化成本,但我們不收費)。

PS。你確定你沒有嘗試過早優化嗎?

+0

感謝Guido。在回答你的問題時,我不確定我沒有嘗試過早優化。但是我已經使用了appstats來並行執行並且在rpc調用中減少了很多。在這種情況下,我退回的實體具有TextProperty,我不需要該視圖,這正是我期望避免的。再次感謝並感謝ndb的精彩! – Jay

+2

如果您當前的模型由於兩種不同的原因而使用,請考慮將其分成兩個單獨的模型,每個模型用於一個目的。你甚至可以爲每個使用相同的密鑰ID。這樣可以保存TextProperty帶來的不必要的有效載荷。 – Dave

相關問題