【问题标题】:How to query for entities using a list of ancestor keys如何使用祖先键列表查询实体
【发布时间】:2016-12-13 00:09:38
【问题描述】:

我在 Google Cloud Datastore 中有以下数据模型:

Parent:
  - name

Child:
  - ancestor: Parent
  - name

我有一个Parent 键的列表。如何查询从Parent 键列表降序的所有Child 实体?

我试过了

SELECT * FROM Child WHERE __key__ HAS ANCESTOR Key(Parent, 'abc'), Key(Parent, 'dfe')

SELECT * FROM Child WHERE __key__ HAS ANCESTOR [Key(Parent, 'abc'), Key(Parent, 'dfe')]

select 语句都不起作用。

【问题讨论】:

    标签: google-cloud-datastore gql


    【解决方案1】:

    Cloud Datastore 查询最多可以对一个祖先进行操作,因此您必须将其作为两个查询运行:

    SELECT * FROM Child WHERE __key__ HAS ANCESTOR Key(Parent, 'abc')
    SELECT * FROM Child WHERE __key__ HAS ANCESTOR Key(Parent, 'dfe')
    

    并合并结果。

    或者,如果您可以轻松获取 所有 Child 实体,您可以运行:

    SELECT * FROM Child
    

    【讨论】:

    • 不幸的是,我无法全部获取,因为我需要将它们过滤掉。看起来这是最好的解决方案,这意味着每个祖先一个查询。 :(
    猜你喜欢
    • 2015-04-28
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 2016-04-29
    相关资源
    最近更新 更多