【发布时间】:2021-12-22 14:34:16
【问题描述】:
所以我在尝试将 cmets 添加到我的 mongoDB 数据库中已经存在的某些数据时遇到了问题。我想这样做,以便我可以为保存在我的数据库中的每个帐户添加、删除和更新 cmets,但我不确定我做错了什么。我已经设置了我的前端来发送一条新评论和所有需要附带的数据。它成功到达我的后端,在我的后端它说它运行并保存但它没有,当我重新加载页面时,我的数据中的 cmets 数组仍然为 0。
Account.findByIdAndUpdate(
{ _id: comment.accountId },
{
$push: {Account: { comments: comment }},
},
{ new: true, upsert: true }
).exec(function (err, task) {
if (err) {
return res
.status(400)
.send({ message: "Failed to add comment due to invalid params" });
}
console.log("successfully uploaded comment");
return res.status(200).send(task);
});
所以我们在这里加载特定帐户,然后将新评论推送到我的猫鼬模式中的 cmets 数组。当我取出“帐户:对象并仅使用 cmets:comment 对对象进行 ahve 时,它说后端存在内部错误,找不到我猜的参数,这将是 cmets 数组。
我不知道为什么这会是一个问题。下面也是我的猫鼬模式。
const AccountSchema = new Schema({
username: {
type: String,
},
name: {
type: String,
},
date: {
type: Date,
default: Date.now,
},
description: {
type: String,
},
latitude: {
type: Number,
},
longitude: {
type: Number,
},
comments: [
{
id: Number,
text: String,
type: String,
date: Date,
replies: [{ id: Number, text: String, type: String, date: Date }],
},
],
});
我没有正确设置我的架构吗?还是我忘记在某处添加一些东西。任何帮助都会很棒,谢谢!
【问题讨论】:
-
你不需要重复 'Account',试试 "$push: {cmets: comment }," 代替
标签: node.js reactjs mongodb mongoose mongoose-schema