在Google App Engine DS中查询模型的唯一祖先

时间:2011-02-18 17:31:46

标签: google-app-engine google-cloud-datastore

任何人都有任何干净的方法来获取特定模型的实体的祖先的唯一列表?

例如,如果有A类和B类(父= A),可以找到当前有B的所有A

2 个答案:

答案 0 :(得分:2)

结束做一个班轮;

a_with_b = set([b.parent() for b in B.all(keys_only=True)]) #list comprehension

仅供参考,在python 3中,你可以做到

a_with_b = {b.parent() for b in B.all(keys_only=True)} #set comprehension

答案 1 :(得分:0)

我能想到的最简单的方法是在B上执行keys_only查询并存储其父键。如果你有很多B,这将是A的痛苦;;)

all_b = B.all(keys_only=True)

a_with_b = []

for b in all_b:
    parent = b.key().parent()

    if not parent:
        continue

    if parent not in a_with_b:
        a_with_b.append(parent)