В этой функции поста я пытаюсь присвоить значок, а затем, после того, как значок был назначен в массиве для пользовательской модели, я пытаюсь обновить отдельное поле в пользовательской программе: c, которую я назвал точкой, баллы udo c .total в настоящее время работают, однако после завершения вызова итоговые баллы пользователей не обновляются и остаются как 0 Схема пользовательской модели -
var schema = new Schema({
email : {type:String, require:true},
username: {type:String, require:true},
password:{type:String, require:true},
creation_dt:{type:Date, require:true},
diabeticType:{type:String, require:true},
badges: [Badges],
totalPoints: {type:Number, require:true},
glucoseReading : [
{
bloodGlucoseLevel : {
type : String,
required : "Required"
},
dosageTime : {
type : String,
},
unitsOfInsulinForFood : {
type : String,
},
correctionDose : {
type : String,
},
creation_dt :{
type : String,
}
}
]
});
, а затем это команда post, где значок добавлено в профиль пользователя, но общее количество баллов не обновляется
router.post("/:id/badge/:bid", function (req, res){{'useFindAndModify', false}
Badgemodel.findById(req.params.bid).then(doc => {
if(!doc)
{
return res.status(404).end();
}
else
{
var awardBadge = doc;
Usermodel.findByIdAndUpdate(req.params.id,
{$push : {badges : awardBadge}},
{safe : true, upsert: true}).then(udoc =>{
if(!doc)
{
return res.status(404).end();
}
else
{
console.log(udoc);
console.log(udoc.totalPoints);
udoc.totalPoints = udoc.totalPoints + awardBadge.value;
console.log(udoc.totalPoints);
return res.status(200).end();
}
})
}
})
})