Jim*_*Jim 16 javascript amazon-dynamodb
我有一个DynamoDB表,其中表中的每个项都有一个注释数组作为属性.我的架构看起来像这样:
{
"id": "abc",
"name": "This is an item"
"comments": [
"commentId": "abcdefg",
"commentAuthor": "Alice",
"commentDetails": "This item is my favourite!"
]
}
Run Code Online (Sandbox Code Playgroud)
我希望能够通过它编辑单个注释commentId,但是不清楚如何为此更新编写DynamoDB表达式(我正在使用DocumentClient).
我们如何在Dynamo中更新嵌入式阵列中的条目?是否可以通过数组索引或查询表达式进行更新?
我认为应该对您的数据模型进行一些修改.您应该使用dynamodb map,只需将您的commentId作为访问每条评论的关键字
{
"id": "abc",
"name": "This is an item"
"comments": {
"abcdefg":{
"commentAuthor": "Alice",
"commentDetails": "This item is my favourite!"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后查询看起来像这样,你必须知道两件事来更新评论1是项目ID,2是评论ID
var params = {
TableName: Tablename,
Key: {id: "abc"},
UpdateExpression:"set comments.#abcdefg.commentDetails=:val1",
ExpressionAttributeNames: {
"#abcdefg":"abcdefg"
},
ExpressionAttributeValues:{
":val1":"New comment text"
}
}
db.update(param,callback);
Run Code Online (Sandbox Code Playgroud)
请让我知道并原谅我,解释你的问题,如果我误解,因为我没有足够的积分来澄清我的评论疑虑.