如果您正在處理記錄的層次結構,其中大多數鍵都具有祖先,那麼在您檢索葉之前是否必須創建所有鍵的鏈?AppEngine數據存儲:分層查詢
例(圍棋):
rootKey = datastore.NewKey(ctx, "EntityType", "", id1, nil) secondGenKey = datastore.NewKey(ctx, "EntityType", "", id2, rootKey) thirdGenKey = datastore.NewKey(ctx, "EntityType", "", id3, rootKey)
你如何通過thirdGenKey
描述的記錄,而不必申報鍵的所有它上面的層次結構的級別?
這就是我確認。因此,如果您的層次結構由許多祖先級別組成,則需要構建一個帶有ID和無祖先的密鑰,另一個帶有ID的密鑰以及該祖先的第一個密鑰,另一個帶有ID的密鑰以及第二個密鑰這個祖先等等,直到你處於正確的級別才能訪問你的主要記錄,是否正確?換句話說,如果你在N級有一條記錄,那麼你將不得不構建一個N鍵鏈,以便以較強的一致性檢索它,對嗎? –
@DustinOprea,這是正確的。然而,你對強一致性的評論是有誤導性的,但是所有的查找(明確地通過關鍵字獲得)都是非常一致的,它與必須存在的關鍵祖先沒有任何關係。當您執行查詢(返回0-n個實體)而不將查詢綁定到單個祖先(實體組)時,最終的一致性將發揮作用。 –
@DanMcGrath是的..這是祖先的存在,使它成爲SC,但你需要整個鏈下降得足夠遠。謝謝,丹。 –