2010-07-26 12 views
7

Şu gibi görünen bir modelim var: Uygulama motoru Datastore'daki özellikleri eksik olan varlıklar için sorgu oluşturuluyor mu?

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

Şimdi değerleri sakladığımda, her seferinde güncellenmiş mülkün değerini dolduramayacağım, bu da bazı varlıklar için mevcut olmayabilir.

Bir veri deposu sorgusu oluşturmak istiyorum, böylece özellik güncellenen kümeye sahip olmayan tüm örnek varlıkları alabilirim.

Bunu nasıl yaparım?

p.s. Biliyorum bir varsayılan değer ayarlayabilir ve sonra sorgulayabilirsiniz. Ancak sorun 3 milyondan fazla varlığım var ve güncellenmiş olanlar sadece% 1'i için işaretlenecek, bu yüzden geri kalanını 0'a ayarlayarak veri deposu alanını boşa harcamak istemiyorum.

cevap

7

GQL olarak ayarlayarak datastore alanı çok fazla harcamak istemiyorum Bir mülk için bir değere sahip olmaması, söz konusu mülkün sorguları tarafından döndürülemez. Bu nedenle, istediğiniz şey varsayılan değer olmadan mümkün değildir.

Başvuru: "Filtre uygulanmış bir özellik olmayan varlıklar hiçbir zaman bir sorgu tarafından iade edilmez" başlıklı bölüm this page.

+0

Yani bir çözüm olabileceğini mi söylüyorsunuz? – demos

+1

Doğru, varolmayan alanı başvuruda bulunduğunuz her şeyden dolayı, o alandaki bir endeksi kullanacaktır, bu, o alan için bir değeri olmayan nesnelerin çıkarılmasına neden olacaktır. – Amber

+1

Çözüm, güncelleştirilmiş özellik için varsayılan bir değer sağlamak ve bu değer için sorgu oluşturmak olacaktır. –

İlgili konular