Javascript 子文档更新后保存文档mongoose,mongodb
我想更新子文档的值,然后保存主文档。因此,对子文档的更改将保存到数据库中。 这是我的自动取款机代码, 我找到了正确的子文档,我想这不是问题所在。但它不会保存更改Javascript 子文档更新后保存文档mongoose,mongodb,javascript,node.js,mongodb,mongoose,mongoose-schema,Javascript,Node.js,Mongodb,Mongoose,Mongoose Schema,我想更新子文档的值,然后保存主文档。因此,对子文档的更改将保存到数据库中。 这是我的自动取款机代码, 我找到了正确的子文档,我想这不是问题所在。但它不会保存更改 projectModel.findById({_id: req.body.projectId}) .then(function(doc){ question = doc.qp.questions.filter(q => {return q._id == req.body.questionId})[0];
projectModel.findById({_id: req.body.projectId})
.then(function(doc){
question = doc.qp.questions.filter(q => {return q._id == req.body.questionId})[0];
var ans = question.answers.filter(a => {return a._id == req.body.answerId})[0];
if(ans)
{console.log(ans)}
ans.value = req.body.answerValue;
doc.save().then(res.send({questionId: req.body.questionId,answerId: req.body.answerId,answerValue: req.body.answerValue}))
})
.catch(error => console.log(error))
我的目标有点复杂,必须是。。它看起来像这样:
project={
prop,
prop,
prop,
qp:{
prop,
prop,
prop,
questions:[
question:{
prop,
prop,
prop,
answers:[
answerModels<--!this i want to find and edit!-->
]
}
]
}
项目={
道具
道具
道具
质素保证:{
道具
道具
道具
问题:[
问题:{
道具
道具
道具
答复:[
回答模型
]
}
]
}
}/P>
你应该考虑猫鼬的功能。
这将允许您查找文档、编辑文档并将其保存回MongoDB 我是这样解决的:
projectModel.findById({_id: req.body.projectId},function (err, doc)
{
if(err)
{
console.log(err)
return;
}
for (i in doc.qp.questions) {
if(doc.qp.questions[i]._id == req.body.questionId)
{
for(y in doc.qp.questions[i].answers)
{
if(doc.qp.questions[i].answers[y]._id == req.body.answerId)
{
var test = doc.qp.questions[i].answers[y].value
console.log(test);
var query = "qp.questions"+i+"answers."+y+".value";
doc.update({_id: req.body.questionId}, { '$set': {query : req.body.answerValue} });
console.log(doc.qp.questions[i].answers[y].value);
doc.save().then(() => res.send({questionId: req.body.questionId,answerId: req.body.answerId,answerValue: req.body.answerValue}))
}
}
}
}
})
.catch(error => console.log(error))
是的,我试过了,但没有成功,你看,我的对象有点复杂,{prop,prop,prop,qp:{prop,prop,prop,questions:{prop,prop,prop,answerModels]}