DynamoDB有条件地更新多个项目

时间:2019-05-22 04:41:36

标签: amazon-dynamodb aws-sdk

我想更新具有多个字段的DynamoDB项,但需要根据具体情况更改要更新的字段。

例如,一个请求可能想要更新2个字段(firstName和lastName),而另一个请求可能只想要更新1个字段(firstName)。我不知道如何在没有多个数据库请求的情况下使用aws-sdk做到这一点。

我以前想过要进行数据库查找,比较这些字段并更新更改的字段,然后更新所有字段。

但是,这感觉很hacky。

const firstName = "New Name";
const lastName = undefined; // to indicate the function was not passed this field to update

const updateParams = {
            TableName: `${dynamodb.tableNamePrefix}_merchants`,
            ReturnValues: 'UPDATED_NEW',
            Key: {
                merchantId
            },
            UpdateExpression:
                'SET #firstName = :firstName, #lastName = :lastName',

            ExpressionAttributeNames: {
                '#firstName': 'firstName',
                '#lastName': 'lastName'
            },
            ExpressionAttributeValues: {
                ':firstName': firstName,
                ':lastName': lastName
            }
        };

        const updatedMerchant = await ddb.update(updateParams).promise();

0 个答案:

没有答案