我需要检索多于一个祖先的对象。如何只在一个查询中检索它?
例如,检索具有祖先A或Ancestor B或祖先C的所有对象。
答案 0 :(得分:0)
您不能 - 您需要为每个祖先发出单独的查询。
根据您要实现的目标,有几种方法可以解决此限制。
请注意,所有这些变通办法都会失去强大的一致性"承诺由祖先查询提供,其中A,B和C实体组中的实体之间的结果不会非常一致。
如果您实际上是在尝试查询所有对象而不管祖先,那么您可以发出无条件查询 - 在GQL中这是SELECT *
如果您知道需要在高级查询的祖先集,则可以在最初编写实体时索引布尔属性。例如,创建一个名为is_abc
的新属性,如果它有任何一个作为祖先,则设置为True
。然后,您可以使用此属性查询这3个实体下的所有实体。