2017-02-14 100 views
2

我正在使用DynamoDB,我需要更新多個記錄上的特定屬性。用僞語言編寫我的要求我想做一個更新,說「更新表 set relationshipStatus ='已婚'其中personKey IN(key1,key2,key3,...)」(假設personKey是KEY在我的DynamoDB表中)。如何一次更新DynamoDB表中的多個項目

換句話說,我想用IN子句進行更新,或者我想可以稱之爲批量更新。我發現this鏈接明確詢問是否存在像批處理更新這樣的操作,並且答案是不存在。但是,它沒有提到IN子句。 documentation顯示ConditionalExpressions支持IN子句(每次可提供100個值)。但是,我不確定這樣的IN子句是否適合我的情況,因爲我仍然需要提供一個必需的KEY屬性(它看起來似乎只有一個值 - 我可能是錯的),我擔心它會執行每次更新的全表掃描。

所以我的問題是:如何在同一時間實現多個DynamoDB記錄的更新?目前看起來,我將不得不逐一爲每個Key調用一條更新聲明,而這只是感覺真的是錯誤的...

回答

7

如您所述,DynamoDB不支持批量更新操作。您需要查詢並獲取要更新的所有記錄的密鑰。然後遍歷該列表,逐個更新每個項目。