簡體   English   中英

Dynamodb 在字典中添加或更新鍵

[英]Dynamodb Add or Update key in dict

我有一個具有以下結構的 dynamodb 表:

'Items': [
   {'user_id': 'myuser',
    'owes_to': {
         'youruser': '10',
         'user3': '20'
       }
   }]

dynamodb 是否可以在owes_to中創建一個新的用戶密鑰,或者如果它已經存在添加到該密鑰的值?

例如在兩個調用中:

  1. 添加值為 20 的“user4”,它不存在,因此創建值為 20 的 user4 鍵)
  2. 下次將 user4 的值 20 更新為 40,這一次鍵已經存在,所以將 20 添加到現有值

有可能,更新表達式將類似於:

update_request = {
    Key={'user_id': ':id'},
    UpdateExpression='SET owes_to.#user_name = if_not_exists(owes_to.#user_name, :default_val) + :val',
    ExpressionAttributeNames={
        '#user_name': <your_user_name>
    }
    ExpressionAttributeValues={
        ':id': 'myuser',
        ':val': <your_update_value>,
        ':default_val': 0
    }
}

注意if_not_exists(owes_to.#user_name, :default_val)構造。 如果存在,它將采用用戶的值,如果不存在,則采用:default_val中指定的值。 有關在官方文檔中添加和更新 map 值的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM