如何在不刪除所有其他屬性的情況下只更新Google雲數據存儲中實體的一個屬性?更新谷歌雲數據存儲中實體的一個屬性python
key = client.key('employee', ID)
employee_to_deactivate = datastore.Entity(key)
employee_to_deactivate.update({
'active':False,
})
這會將活動屬性更新爲False,但會刪除所有其他屬性。
如何在不刪除所有其他屬性的情況下只更新Google雲數據存儲中實體的一個屬性?更新谷歌雲數據存儲中實體的一個屬性python
key = client.key('employee', ID)
employee_to_deactivate = datastore.Entity(key)
employee_to_deactivate.update({
'active':False,
})
這會將活動屬性更新爲False,但會刪除所有其他屬性。
您無法更新實體的特定屬性。所有寫入(插入,更新)都必須包含應該保留的所有屬性。無論何時需要進行更新,都需要首先檢索現有實體作爲整體,然後通過設置新值並更新實體來更新一個或多個屬性。
非常感謝,你知道他們爲什麼決定稱之爲'更新'嗎?似乎很差的命名約定 –
正如前面的回答中所述,您需要爲更新實體時要保留的每個屬性設置值。
更新單個屬性時重新使用以前屬性值的一種方法是迭代實體。當使用從datastore documentation示例代碼,這將如下所示:
with client.transaction():
key = client.key('Task', 'sample_task')
task = client.get(key)
# iterate through the entity to take over all existing property values
for prop in task:
task[prop] = task[prop]
task['done'] = True
client.put(task)
檢查這個答案:這個複製](https://stackoverflow.com/questions/5067418/update-an-entity-in -datastore-app-engine) – kattybilly