如何按 ID ndb.query 设置过滤

How to set filtering by ID ndb.query

我尝试像下面这样过滤ID

ancestorid  id      value
1111       aaaa     10       // I want to fetch this
1111       bbbb     20
2222       aaaa     30       // and this.
2222       cccc     40

但是,我在 ndb.query 参考中找不到按 id 过滤。

我可以通过 key.But 过滤它需要祖先键 (id)。 我想获取交叉实体组。

如何使用 ndb.query 按 ID 过滤?

您不能通过单个查询做到这一点。这是因为如果您进行祖先查询,您将只能从该祖先实体组中获得结果,如果您不进行祖先查询,您将只能获得没有祖先的实体。所有这些查询都会有 non-overlapping 个结果。

获得所需结果的唯一方法是使用多个查询:

  • 获取感兴趣的祖先键(可能使用查询)
  • 为每个获得的祖先键执行一个祖先查询
  • 同时执行 non-ancestor 查询,如果您查找的实体可能没有祖先
  • 合并上述所有执行查询的结果