【发布时间】:2016-11-03 07:46:36
【问题描述】:
我试图通过首先找到对象来更新我的值,然后将一个值推送到 2 个数组中,然后更新原始值。可以找到对象并且可以将值推入数组。但是,更新函数似乎无法检测到更改,因此无法更新数据库中的值:
{
"ok": 1,
"nModified": 0,
"n": 0,
"lastOp": "0",
"electionId": "576dec4e2c52240b7a5bca5e"
}
这是我尝试更新值的函数:
Skills.findOne({ skillsCat: req.body.skillsCat }, (err, skills)=> {
if (err) {
res.send(err)
return
}
if (skills) {
skills.skillName.push(req.body.skillName)
skills.percent.push(req.body.percent)
skills.markModified('skillName')
skills.markModified('percent')
return skills
}
})
.then(skills=> {
Skills.update( { _id: req.body._id }, { $set: skills }, (err, updated)=> {
if (err) {
res.send(err)
return
}
res.json({
message: 'Skill info updated successfully',
'database response': updated
})
})
})
我尝试将更新函数放在第二个 if 语句中,但它得到了相同的结果。
有谁知道出了什么问题,我该如何解决?谢谢!
【问题讨论】:
标签: node.js mongodb express mongoose promise