【问题标题】:How to set filtering by ID ndb.query如何通过 ID ndb.query 设置过滤
【发布时间】:2018-02-28 07:15:45
【问题描述】:

我尝试过滤如下 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】:

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

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

    • 获取感兴趣的祖先键(可能使用查询)
    • 对每个获得的祖先键执行一次祖先查询
    • 如果您寻找的实体可能没有祖先,也执行非祖先查询
    • 结合上述所有已执行查询的结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2011-08-14
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多