2013-03-10 36 views
0

我在看一些Python代碼,併力圖將我的想法是祖先路徑。瞭解祖先的路徑谷歌應用程序引擎

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

無處不在,我們有

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

我想找到的文檔或解釋爲什麼這樣做,因爲這些實體有關係意義上的真正的「父母」。

我已閱讀GAE文檔,但仍不清楚何時何時不這樣做。

+1

閱讀此:https://developers.google.com/appengine/docs/python/datastore/entities#Transactions_and_Entity_Groups – dragonx 2013-03-10 21:22:48

回答

1

通過使實體具有相同的父項,可以使它們成爲同一個實體組的一部分,這可用於使查詢一致。通常情況下,數據存儲並不能保證一個實體在保存後可以被直接取出。它最終會顯示,但這可能需要幾秒鐘。

但是,當您執行祖先查詢時,它確實保證了一致性,這就是爲什麼文檔中的大多數介紹性示例代碼都會創建具有相同父級的所有實體的原因。這使得在保存數據後立即獲取數據變得更加容易,但它確實將此實體組的更改限制爲每秒大約一次寫入。

該文檔中的章節Structuring Data for Strong Consistency有一些更多的細節。