node.js - 更新 Dynamodb 中的地图列表
问题描述
下面是我的 DynamoDB 结构:
{
id : "Sample_id",
details: {
wf: [{
wid: "12345",
wname: "name_1"
}]
}
}
现在我想向“wf”添加一个新的地图对象,我已经尝试了 ADD 和 SET 更新,但都用新的对象替换了现有的对象。
下面是我试过的代码
var params = {
TableName: p_table,
Key: {
"id" : "Sample_id"
},
UpdateExpression: "SET details.wf = list_append(details.wf, :vals)",
ExpressionAttributeValues: {
":vals" : [{'wid': "98765", 'wname': 'name_2'}]
}
};
ddb.update(params, function(err, data) {
if(err)
console.log(err);
else
console.log(data)
});
上面代码的电流输出:
{
id : "Sample_id",
details: {
wf: [{
wid: "98765",
wname: "name_2"
}]
}
}
预期输出:
{
id : "Sample_id",
details: {
wf: [{
wid: "12345",
wname: "name_1"
},
{
wid: "98765",
wname: "name_2"
}]
}
}
我怎样才能达到预期的效果
解决方案
将我的参数对象更新到下面,它对我有用
添加了一个索引 99999(一些大的随机索引,我不希望我的列表增长超出该索引),尽管索引 99999 同时将 lambda 中的数据附加到它与下一个可用索引所在的现有列表
var params = {
TableName: p_table,
Key: {
"id" : "Sample_id"
},
UpdateExpression: "SET details.wf[999999] = :vals",
ExpressionAttributeValues: {
":vals" : {'wid': "98765", 'wname': 'name_2'}
}
};
ddb.update(params, function(err, data) {
if(err)
console.log(err);
else
console.log(data)
});
推荐阅读
- json - 如何用 json 存储协议缓冲区的“oneof”字段
- python - 将数据悬停在条形图上而不绘制文本 - plotly
- node.js - Appveyor - 找不到模块“画布”
- php - 带有输入参数的PHP Ajax onclick
- javascript - 如何使用 reCaptcha 令牌在不同的窗口中打开验证码提示
- spring-boot - 使用自己的 oauth2 实现时,使用 oAuth2 安全服务器连接到第 3 方 rest api
- c - 我不明白我的 pset4[更舒服(边缘)] 代码有什么问题
- java - 从状态类访问上下文类的私有字段
- python - 在python中使用递归和if-else计算零
- python - tkinter 如何循环按钮