我有一个Budskap
(帖子(,它有replies
数组,每个回复都有likes
数组。现在我有这个代码:
const budskapFromDB = await Budskap.findById(budskapID);
const budskapReply = await budskapFromDB.replies.find(r => r.id === replyID);
budskapReply.likes.push({
username: req.user.username,
createdAt: dayjs().format('YYYY-MM-DD hh:mm:ss')
});
budskapFromDB.save();
它通过ID找到相应的budskap
,然后我找到我想喜欢的回复,并将username
推送到该回复。当调用save()
时,likes
数组仍然为空。为什么它不将新元素保存在数组likes
?
更新
好的,所以将budskapReply
推送到budskapFromDB.replies
会添加新数据,但像以前一样使用旧数据复制。
budskapReply.likes.push({
username: req.user.username,
createdAt: dayjs().format('YYYY-MM-DD hh:mm:ss')
});
budskapFromDB.replies.push(budskapReply)
好的,所以用新回复替换旧回复就可以了。
budskapReply.likes.push({
username: req.user.username,
createdAt: dayjs().format('YYYY-MM-DD hh:mm:ss')
});
budskapFromDB.replies.splice(replyIndex, 1, budskapReply); // <--- trick
budskapFromDB.save();