NodeJS:数组不保存



我有一个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();

最新更新