【发布时间】:2018-12-11 17:38:54
【问题描述】:
我的 dynamodb 表中目前有一个 List 属性:
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) { }
我设法将对象映射添加到推荐列表,但是当我想添加另一个对象映射时,它会替换推荐列表中的对象。
我也试过在UpdateExpression中使用ADD
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",
【问题讨论】:
标签: node.js amazon-web-services aws-lambda amazon-dynamodb