如何在Google云数据存储区中查询多个祖先?

时间:2016-10-27 13:51:31

标签: google-cloud-datastore google-cloud-platform data-modeling

我需要检索多于一个祖先的对象。如何只在一个查询中检索它?

例如,检索具有祖先A或Ancestor B或祖先C的所有对象。

1 个答案:

答案 0 :(得分:0)

您不能 - 您需要为每个祖先发出单独的查询。

变通方法

根据您要实现的目标,有几种方法可以解决此限制。

请注意,所有这些变通办法都会失去强大的一致性"承诺由祖先查询提供,其中A,B和C实体组中的实体之间的结果不会非常一致。

1。无用的查询

如果您实际上是在尝试查询所有对象而不管祖先,那么您可以发出无条件查询 - 在GQL中这是SELECT *

2。索引新属性

如果您知道需要在高级查询的祖先集,则可以在最初编写实体时索引布尔属性。例如,创建一个名为is_abc的新属性,如果它有任何一个作为祖先,则设置为True。然后,您可以使用此属性查询这3个实体下的所有实体。