我希望在DynamoDB中创建一个列表项。这是我的代码:
var list_update_params = {
TableName: "table01",
Key: {
"MachineID": {
"S": MachineID
},
"Hour": {
"S": Hour
}
},
UpdateExpression: "set var01_list = list_append(var01_list, :ot)",
ExpressionAttributeValues: {
":ot": {"L": [{"N": var01}]}
},
ReturnValues: "NONE"
};
dynamodb.updateItem(list_update_params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log("Updated List to DynamoDB");
});
问题是list_append
期望属性var01_list
已经存在,但我不会在第一次插入时知道。有没有一种技术可以让我创建一个List属性,如果一个不存在并在以后的调用中追加它?
答案 0 :(得分:1)
从类似的帖子中获得答案here。
UpdateExpression: "set var01_list= list_append(if_not_exists(var01_list, :empty_list), :h)",
ExpressionAttributeValues: {
":h": {"L": [{"N":var01}]},
":empty_list": {"L": []}
},
关键是if_not_exists
与list_append
一起使用。不知道可以在这件事上做到这一点