我当前在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",
答案 0 :(得分:0)
好的,我已经弄清楚了如何将一个对象添加到项目的现有map属性中。我使用了 list_append
这会将对象添加到现有的地图属性
#creating the lists
wind_list <- as.list(as.character(winddir$Wind))
date_list <- as.list(as.character(winddir$Date))