我有一个属性列,它可以在任何时间点包含以下值的子集:{ 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,000people
人都有一个address
of { Manila | Cebu | Davao }
,那么我想要set(Manila, Cebu, Davao)
.
在另一个时间点,所有 5,000,000people
都会有一个address
of { Iloilo | Laoag }
,那么我想要set(Iloilo, Laoag)
.
在进行任何查询之前,我不知道set
应该由什么组成。
我目前的方法要求我挖掘所有实体。效率太低了,有什么更好的方法吗?