У меня в настоящее время есть атрибут Список в моей таблице DynamodB:
name: "Test User"
recommendations: []
Я бы хотел добавить новый элемент в атрибут рекомендаций, используя UpdateExpression
const params = {
TableName: 'insiders',
Key:{
"uuid": event.uuid, // WHERE uuid is event.uuid
},
UpdateExpression: "SET #recommendations = :recommendation",
ExpressionAttributeNames: {
"#recommendations": "recommendations",
},
ExpressionAttributeValues: {
":recommendation": [{
"uuid": `ir_${uuidv4()}`,
"recommendation": event.recommendation
}]
},
ReturnValues:"UPDATE_NEW"
};
dynamodb.update(params, function(err, data) { }
Мне удалось добавить карту объектов в список рекомендаций, но когда я хочу добавить другую, она заменит объект в списке рекомендаций.
Я также попытался использовать ADD в UpdateExpression
const params = {
TableName: 'insiders',
Key:{
"uuid": event.uuid,
},
UpdateExpression: "ADD #recommendations :recommendation",
ExpressionAttributeNames: {
"#recommendations": "recommendations",
},
ExpressionAttributeValues: {
":recommendation": [{
"uuid": `ir_${uuidv4()}`,
"recommendation": event.recommendation,
}]
},
ReturnValues:"ALL_NEW"
};
dynamodb.update(params, function(err, data) { }
, но я получаю ошибку
"Invalid UpdateExpression: Incorrect operand type for operator or function; operator: ADD, operand type: LIST",