2010-07-26 50 views
7

我有一個模型,它看起來像這樣:查詢應用程序引擎Datastore中缺少屬性的實體嗎?

class Example (db.Model) : 
row_num = db.IntegerProperty(required=True) 
updated = db.IntegerProperty() 
... 
... 

現在,當我存儲的值,我可以不填寫更新的物業每一次,這意味着在一些實體就可能不存在的價值。

我想要構建一個數據存儲查詢,以便我可以獲取所有沒有屬性更新設置的類型實例。

我該怎麼做?

p.s.我知道我可以設置一個默認值,然後查詢它。但問題是我有超過300萬個實體,更新將僅標記爲1%,所以我不想浪費太多的數據存儲空間,其餘設置爲0.

回答

7

在GQL中,對象沒有屬性的值無法通過該屬性上的查詢返回,因此如果沒有默認值,您要求的內容是不可能的。

參考:有關this page的標題爲「沒有經過過濾特性的實體從未被查詢返回」的部分。

+0

所以你說沒有可行的解決方法? – demos 2010-07-26 04:24:25

+1

正確,因爲您試圖做的任何事情都會引用不存在的字段,將在該字段上使用索引,這會導致忽略任何對該字段沒有值的對象。 – Amber 2010-07-26 04:35:57

+1

解決方法是爲更新的屬性提供默認值,並查詢該值。 – 2010-07-26 12:40:47

相關問題