【发布时间】:2021-10-04 19:37:07
【问题描述】:
这就是数据库的样子:-
{
"courses" : [
{
"course" : "Btech",
"semesters" : [
{
"sem" : 1,
"subjects" : [ ]
},
{
"sem" : 2,
"subjects" : [ ]
}
]
},
{
"course" : "MBA",
"semesters" : [
{
"sem" : 1,
"subjects" : [ ]
}
]
}
]
}
我想在 sem 1 的 btech 课程中插入一个主题(c++),让它看起来像这样:-
{
"courses" : [
{
"course" : "Btech",
"semesters" : [
{
"sem" : 1,
"subjects" : [
"subject" : "C++" // i want to add this
]
},
{
"sem" : 2,
"subjects" : [ ]
}
]
},
{
"course" : "MBA",
"semesters" : [
{
"sem" : 1,
"subjects" : [ ]
}
]
}
]
}
到目前为止,我已经编写了这段代码:-
app.get('/insertSubject', async function(req, res)
{
const subject = new Subject({
subject : req.body.subject // req.body.subject = btech
})
await Padhlo.updateOne(
{"courses.course": "Btech" , "courses.semesters.sem": 1},
{ $addToSet : { "courses.semesters.$.subjects": subject } },
function(err)
{
if(!err)
{
res.status(200).send("OK");
}
else
{
res.status(404).send(err);
}
}
)
});
但它给了我这个错误:-
UnhandledPromiseRejectionWarning: MongoError: Cannot create field 'semesters' in element
请帮助我,告诉我哪里出错了。我是 MongoDB 新手,我目前正在使用 MongoDB:5.0.1 版本
【问题讨论】:
标签: node.js mongodb mongoose mongodb-query