0
オブジェクトを見つけてから、値を2つの配列にプッシュしてから、元の値を更新して値を更新しようとしています。オブジェクトが見つかり、値を配列にプッシュすることができます。ただし、更新機能は、変更を検出することができないように思われるので、それはデータベース内の値を更新できませんでした。ここでMongoose更新配列関数が機能しません
{
"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
})
})
})
私は2番目のif文の中にupdate関数を置こうとしましたが、同じ結果が得られます。
誰が何が間違っているのか分かりますが、これをどのように修正できますか?ありがとう!
私は実際に後で何かを考え出しました。 Skills.update(...)を返す代わりに、私はskill.save()を返しました。そしてそれは働いた。 – thousight