0
如果某些屬性(其中某些屬性是DynamoDB表的主鍵,其中某些屬性不匹配)與我插入的新對象相匹配,我在使用Boto3的put_item
替換DynamoDB中的對象時出現問題進入桌子。如果對象上存在某些屬性,那麼使用Boto3,可以讓put_item替換DynamoDB中的對象?
舉例來說,如果一個DynamoDB表裏面出現:
user (Partition Key) | ts (Sort Key) | height | weight
__________________________________________________________________________________
'fred' 01-01-2017 5'10'' 190
'george' 01-02-2017 5'08'' 200
,我想一個新行添加到該表:
'fred' 01-01-2018 5'10'' 200
基於用戶fred
和高度5'10''
與已經在表格中的其他用戶匹配,我想用新條目替換舊條目。文檔對boto3和AWS put_item有點不清楚 - 我該怎麼做?
以供參考,這是我目前:
tracking_result = tracking_dbs[drivetype].put_item(
Item=track,
# insert fields to remove old entry that matches
# up with certain attributes from new entry here
)
謝謝!有沒有辦法讓我在沒有掃描的情況下做到這一點?如果可能,我想避免在數據庫上執行O(n)操作。 –
你需要排序鍵嗎?如果不是,並且表中沒有太多數據,請刪除該表並僅使用分區鍵(用戶)創建一個新表,並且不要使用排序鍵。然後,put_item將按您的要求工作。 –