我有一個屬性列,它可以在任何時間點都具有以下值的子集:{ a | b | c | d | e }
。我的意思是,有時它可以是{ a | d | e }
中的任何一個,或者在其他時候甚至可以是{ x | y | z }
。我如何查詢數據存儲庫,以便我能夠找出該時間點的子集,而不必深入每個實體?查詢數據存儲中存在的屬性值集合
目前我在做這樣說:
people = Person.all().fetch(100)
city = set()
for p in people:
city.add(p.address)
我想要得到的一組存在在這個時間點(即無重複)的屬性值。例如,在某個時間點,所有5,000,000個people
都有一個address
的{ Manila | Cebu | Davao }
,那麼我需要set(Manila, Cebu, Davao)
。
在另一個時間點,所有500萬people
將有{ Iloilo | Laoag }
的address
,那麼我想set(Iloilo, Laoag)
。
在查詢之前,我不知道set
應該由什麼組成。
我現在的方法要求我挖掘所有的實體。這是非常低效的,有沒有更好的方法?
我不明白你想要做什麼。這聽起來像你有一個模型,有一個屬性可以容納很多值。這是作爲一個列表屬性實現的嗎?粘貼你的模型。你試圖擺脫哪些數據?只有那些在上面的列表屬性中有一些確切的值子集的實體?你發佈的例子不清楚,也沒有幫助。 – mjibson 2012-04-04 03:52:13
@mjibson對不起,我編輯了這個問題,使其更加清晰。 – Kit 2012-04-04 04:28:28