我正在使用JSON结构存储博客文章的评论和答复。基本上,id,storeId,blogUrl,blogTitle等将是其他属性,主键将是blogId。
发布回复后,我需要将回复推送到评论数组。
JSON结构-
"blogStatus": "published",
"blogContent": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.,
"storeId": "10",
"tagDate": "Thu Mar 07 2019 18:02:33 GMT+0530 (India Standard Time)",
"type": "comment",
"blogTitle": "best hospitalsss",
"createdDate": "Thu Mar 07 2019 18:02:33 GMT+0530 (India Standard Time)",
"Comments": [
{
"date": "Fri Mar 08 2019 10:24:50 GMT+0530 (India Standard Time)",
"userEmail": "liza@gmail.com",
"id": "4e4e8210-415e-11e9-bd72-a17467608922",
"userName": "liza",
"status": "draft",
"replies": [
{
"date": "Fri Mar 08 2019 09:54:00 GMT+0530 (India Standard Time)",
"userEmail": "liza1@gmail.com",
"id": "ff3096e0-4159-11e9-9315-652881dffd8b",
"userName": "liza1",
"status": "draft"
},
{
"date": "Fri Mar 08 2019 09:54:00 GMT+0530 (India Standard Time)",
"userEmail": "liza2@gmail.com",
"id": "ff3096e0-4159-11e9-9315-652881dffd8b",
"userName": "liza2",
"status": "draft"
}
}
]
]
这是我想要的结构。.首先,我创建一个带有空评论和回复数组的博客文章。.我使用dynamodb中的list_append将评论附加到博客文章中。.我需要在评论中插入多个回复数组数组作为内部数组。
这是我的API,用于将回复推送到评论数组。.但是对于每个api命中,回复项目将替换为评论数组,而我需要添加新项目
app.post('/api/v1/reply/:id', function (req, res) {
var blogId = req.params.id;
var replyId = uuid.v1();
var d = new Date();
var date = d.toString();
const {
reply,
userName,
userEmail,
status
} = req.body
var params = {
TableName: "BlogTest",
Key: {
"id": blogId,
},
UpdateExpression: "SET #comments[0].#replies = :attrValue",
ExpressionAttributeNames: {
'#comments': 'Comments',
'#replies': 'replies'
},
"ExpressionAttributeValues": {
":attrValue": [{ id: replyId, date: date, message:reply, userName:userName, userEmail:userEmail,status:status},{ id: replyId, date: date, message:reply, userName:userName, userEmail:userEmail,status:status}]
},
ReturnValues: "UPDATED_NEW"
};
console.log(params);
docClient.update(params, (error) => {
if (error) {
console.log(error);
res.status(400).json({ error: 'Could not create reply' });
}
res.status(200).json({ success: 'Created the reply' });
// res.json({ id, name, info });
});
})
任何人都请帮助。。谢谢