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

Cho*_*eat 1 google-app-engine google-cloud-datastore

我无法理解这是否可能.

我需要检索所有类型为"A"的实体,类型为"B"的实体列表的子类.

因此每个实体"B"有多个子节点"A".

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

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

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

A.query(ancestor in B-list).fetch(...)
Run Code Online (Sandbox Code Playgroud)

但我无法理解我是如何做到这一点或我应该使用什么.

Gui*_*sum 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())
Run Code Online (Sandbox Code Playgroud)