了解Ancestor Path Google App Engine

时间:2013-03-10 20:50:51

标签: python google-app-engine

我正在研究一些Python代码并尝试使用我认为的Ancestor Paths。

def parent_key(name = 'default'):
    return ndb.Key('MyEntity', name)

我们到处都有

 MyEntity.get_by_id(someId, parent = parent_key())

我试图找到文档或解释为什么这样做,因为这些实体在关系意义上没有真正的“父”。

我已经阅读了一些有关GAE文档的内容,但目前还不清楚何时以及何时不这样做。

1 个答案:

答案 0 :(得分:1)

通过使实体具有相同的父级,您可以将它们作为同一实体组的一部分,这可用于使查询保持一致。通常,数据存储不保证在保存实体后可以直接获取实体。它会显示最终,但这可能需要几秒钟。

但是,当您执行祖先查询时,它确保了强大的一致性,这就是为什么文档中的大多数介绍性示例代码都创建具有相同父级的所有实体的原因。这样可以在保存数据后立即更轻松地获取数据,但它确实将对此实体组的更改限制为每秒约一次写入。

文档中的Structuring Data for Strong Consistency章节有更多细节。