0

如果我們添加具有相同ID的同一模型(NDB)的第二實體,第一個實體是否會被第二個實體替換?
這是正確的方法嗎?將來,這會導致任何問題嗎?通過重用實體覆蓋實體

我使用GAE Python和NDB。

例如,

class X (ndb.Model): 
    command = ndb.StringProperty() 

x_record = X (id="id_value", command="c1") 
x_record.put() 


# After some time 
x_record = X (id="id_value", command="c2") 
x_record.put() 

我沒有找到這在谷歌官方文檔提及。

CONTEXT
我打算用它來減少代碼步驟。目前,首先代碼檢查是否存在具有密鑰X的實體。如果存在,它會更新其屬性。否則,它使用該鍵創建一個新的鍵(X)。新的方法是盲目地用鍵X創建一個新的實體。

回答

3

是的,你會簡單地替換模型。

會導致任何問題嗎?只有當你想要原始模型...

+0

感謝您的回覆。我打算用它來減少代碼步驟。目前,首先代碼檢查是否存在具有密鑰X的實體。如果存在,它會更新其屬性。否則,它使用該鍵創建一個新的鍵(X)。新的方法是盲目地用X鍵創建一個新的實體。我希望你的背景正確。 – gsinha

+0

get_or_insert可能是有趣的,然後:https://developers.google.com/appengine/docs/python/datastore/modelclass#Model_get_or_insert –

+0

它是否也適用於NDB? (因爲它存在於谷歌官方文檔的數據庫部分) – gsinha