Я хочу обновить элемент DynamoDB, который имеет несколько полей, но должен варьировать, какие поля обновляются в каждом конкретном случае.
Например, для одного запроса может потребоваться обновить 2 поля (firstName & lastName)в то время как другой запрос может захотеть обновить только 1 поле (firstName).Я не могу понять, как я могу сделать это, используя aws-sdk, не имея нескольких запросов к базе данных.
Я думал о том, чтобы выполнить поиск базы данных до этого, сравнить поля и обновить измененные поля, а затем обновить все поля.
Впрочем, это просто кажется счастливым.
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();