NDB:给定游标的多个父级查询

时间:2012-09-15 19:25:04

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

我无法理解这是否可能。

我需要检索所有类型为“A”的实体,类型为“B”的实体列表的子类。

因此每个实体“B”都有多个孩子“A”。

这很简单:我得到B-list,我需要的那种“B”实体列表,每一个,我都得到了孩子们的列表。

现在,我可以在查询之后对它们进行排序,将它们合并到一个列表中,即使这不是一个好习惯。我最大的问题是我不知道如何使用游标,因为有多个查询。

然后我想我需要一些看起来像

的东西
A.query(ancestor in B-list).fetch(...)

但我无法理解我是如何做到这一点或我应该使用的。

1 个答案:

答案 0 :(得分:5)

每个祖先只能指定一个查询。所以你必须做多个查询。但如果你有点聪明,你可以并行完成。这是代码的粗略草图(未经测试):

futures = []
for b in B_list:
  futures.append(A.query(ancestor=b).fetch_async(...))
results = []
for f in futures:
  results.extend(f.get_result())