【问题标题】:Dynamodb update based on id of nested array object基于嵌套数组对象的 id 的 Dynamodb 更新
【发布时间】:2022-01-07 14:08:23
【问题描述】:

我有一个用户表,其用户名的分区键如下:

{
username: 1234,
experience:[
 {id: 322, title:"CTO", company:"google"},
 {id:432, title: CFO, company: "fb"}
]
}

... 我需要根据 id 更新一个人的经验。(例如更新 id 为 322 的经验)

有人可以指导我如何在 dynamodb node js 中做到这一点。

【问题讨论】:

  • 所有使用该 ID 的体验?或者您的意思是使用 ID 322 为人员 123 更改体验?
  • 是的,需要为用户名 1234 更改 id 322 的体验

标签: amazon-dynamodb aws-sdk-js aws-sdk-nodejs


【解决方案1】:

抱歉,我不知道 DynamoDB 中有一种方法可以根据列表项的值来操作列表。下面的代码更改了员工 322 的公司值——但它假设您知道该员工在列表中的数组位置。

maps.put_item(
   Item={
    'PK': '1234',
    'experience': [
        {'id':322, 'title': 'CTO', 'company': 'google'},
        {'id':432, 'title': 'CFO', 'company': 'fb'}
    ]
   }
)

result = maps.update_item(
    Key={
        'PK': '1234'
    },
    UpdateExpression='SET experience[0] = :v1',
    ExpressionAttributeValues={':v1': {'id':322, 'title':'CTO', 'company':'amazon'} }
)    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2020-05-08
    相关资源
    最近更新 更多