如何按ID ndb.query设置过滤

问题描述 投票:0回答:1

我尝试过滤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过滤。

我可以按键过滤。但它需要祖先键(id)。我想要获取跨越实体组。

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

python google-app-engine google-cloud-datastore app-engine-ndb
1个回答
2
投票

您无法使用单个查询执行此操作。那是因为如果你创建一个祖先查询,你只会从祖先实体组中获得结果,如果你不进行祖先查询,你将只获得没有祖先的实体。所有这些查询都会产生不重叠的结果。

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

  • 获取感兴趣的祖先键(可能使用查询)
  • 为每个获得的祖先密钥执行一个祖先查询
  • 如果您寻找的实体可能没有祖先,也会执行非祖先查询
  • 结合上面提到的所有执行查询的结果
© www.soinside.com 2019 - 2024. All rights reserved.