【发布时间】:2017-03-10 05:50:53
【问题描述】:
我需要检索多个祖先的对象。如何仅在一个查询中检索它?
例如,检索具有祖先 A 或祖先 B 或祖先 C 的所有对象。
【问题讨论】:
标签: google-cloud-datastore google-cloud-platform data-modeling
我需要检索多个祖先的对象。如何仅在一个查询中检索它?
例如,检索具有祖先 A 或祖先 B 或祖先 C 的所有对象。
【问题讨论】:
标签: google-cloud-datastore google-cloud-platform data-modeling
您不能 - 您需要为每个祖先发出单独的查询。
根据您要达到的目标,有几种方法可以解决此限制。
请注意,所有这些变通方法都将失去祖先查询提供的“强一致性”承诺,即 A、B 和 C 实体组中的实体之间的结果将不会强一致。
如果您实际上尝试查询所有对象而不考虑祖先,您可以发出 kindless 查询 - 在 GQL 中这是 SELECT *
如果您事先知道需要查询的祖先集,则可以在最初编写实体时为布尔属性编制索引。例如,创建一个名为is_abc 的新属性,如果它有任何一个作为祖先,则将其设置为True。然后,您可以使用此属性来查询这 3 个实体下的所有实体。
【讨论】: