首页 > 解决方案 > 如果存在则附加到嵌套对象,否则在 DynamoDB 中创建新的嵌套对象

问题描述

我遇到了一种情况,如果它不存在,我需要创建一个新的嵌套对象,否则修改现有对象。任何想法如何做到这一点。

const data = await docClient
    .update({
      TableName: DYNAMO_TABLE,
      Key: {
        TaskQueueSid: event.TaskQueueSid,
      },
      UpdateExpression:
        "SET TaskQueueName = :TaskQueueName, Tasks = if_not_exists(Tasks, :empty_object)",
      ExpressionAttributeValues: {
        ":TaskQueueName": event.TaskQueueName,
        ":Tasks": {
          TaskSid: event.TaskSid,
          TaskAssignmentStatus: event.TaskAssignmentStatus
        },
        ":id" : id,
        ":empty_object": {},
      },
    })
    .promise();

在上面如果Tasks记录中不存在,我需要创建一个新的空对象并将:Tasks其添加:id为键。否则,如果Tasks存在于记录中,只需添加到:id现有对象。在上面我可以创建一个空对象,但我不能添加:id => :Tasks它。如何做到这一点?谢谢你。

标签: node.jsamazon-web-servicesamazon-dynamodb

解决方案


推荐阅读