2016-04-20 56 views
1

我有一個DynamoDB表,其中一個屬性作爲主鍵ItemNameAWS DynamDB條件項刪除

添加到表中的每個屬性都使用當前UTC時間戳命名。

我想刪除最後一個屬性,它會檢查是否存在除ItemName之外的其他屬性,並且如果不存在我想要刪除的項目,則進行條件刪除。

有無論如何這樣做嗎?

謝謝。

回答

2

據我所知,沒有辦法告訴DynamoDB自動爲你做這件事。如果您使用UpdateItem方法將屬性添加到尚不存在的項目,但它們將不會在所有屬性(密鑰除外)都自動刪除項目時,它們將爲您創建一個新項目。

執行此操作的最佳方法是使用UpdateItem方法的ReturnValues屬性。將其設置爲ALL_NEW以獲取返回給你的行的當前狀態。然後,您的代碼可以檢查該項目是否有其他屬性,並根據需要調用DeleteItem方法。

編輯: 此外,您可以將ConditionExpression添加到DeleteItem方法調用,以刪除它之前檢查屬性的存在。

+0

謝謝@coffeeplease,我所做的是刪除顯然不好的屬性後得到的項目。問題是,它仍然不能解決我的問題,因爲在完成檢查新屬性之後,直到刪除Item,另一個屬性可以在其他地方創建,我將直接刪除它。對不明白我創建項目/刪除屬性的方式。無論如何,謝謝 – Tal87

+0

即使你能夠刪除該項目,如果有另一個屬性進來,它會使用UpdateItem來添加該屬性?如果是這樣的話,它最終會重新創建該項目。那是你要的嗎?我很好奇你的情況,如果你能分享任何額外的細節... – readyornot

+0

如果我能夠刪除該項目,只有然後使用UpdateItem添加屬性,那麼我將沒有問題的項目娛樂。但如果在刪除它之前創建了新屬性,我不想刪除該項目。我正在使用一個表來管理鎖定機制。每個帳戶可以有多個讀鎖,並且只有一個寫鎖(單獨) – Tal87