AppEngine/Datastore:自祖先查询 returns 以来递归检索所有内容的最佳方式
AppEngine/Datastore: Best way to retrieve since ancestor query returns everything recursively
当我使用祖先约束执行 get()
时,似乎我获得了该祖先键的所有实体及其父级的所有祖先。
在这种情况下,我使用祖先关系来表示一棵同源树(所有节点由同一类表示;每个级别都立即一致)。我使用的所有 ID 都是全局唯一的,并且我在每个实体上都写了父 ID(除了它在祖先路径中)。
由于祖先检索 returns 太多数据(所有级别和以下级别,而不仅仅是直接级别;文档没有提到这个和其他一些怪癖),我会需要添加一个过滤器以确保我刚刚回到当前级别。
所以,问题是 ancestor().filter()
与仅 filter()
的效率是否存在差异,因为它们对我来说产生的结果相同。
谢谢。
只有 filter()
是最终一致的,而 ancestor().filter()
是强一致的。
正如您所提到的,您需要按索引 a 属性 进行过滤,以仅返回树的特定级别。
当我使用祖先约束执行 get()
时,似乎我获得了该祖先键的所有实体及其父级的所有祖先。
在这种情况下,我使用祖先关系来表示一棵同源树(所有节点由同一类表示;每个级别都立即一致)。我使用的所有 ID 都是全局唯一的,并且我在每个实体上都写了父 ID(除了它在祖先路径中)。
由于祖先检索 returns 太多数据(所有级别和以下级别,而不仅仅是直接级别;文档没有提到这个和其他一些怪癖),我会需要添加一个过滤器以确保我刚刚回到当前级别。
所以,问题是 ancestor().filter()
与仅 filter()
的效率是否存在差异,因为它们对我来说产生的结果相同。
谢谢。
只有 filter()
是最终一致的,而 ancestor().filter()
是强一致的。
正如您所提到的,您需要按索引 a 属性 进行过滤,以仅返回树的特定级别。