【发布时间】:2019-04-23 04:49:58
【问题描述】:
嗨,我有一个这样的对象数组:
[
{
"_id": "5bf43c42a09e1129b8f0cd4c",
"user": "5bc89dec5f6e1103f808671b",
"StudentGrades": [
{
"_id": "5bf43daf58f0f803d4e9760b",
"classCode": "ENG1A0",
"gradeLevel": 12,
"credit": 1,
"mark": 67
}
],
"__v": 0
}
]
使用 node.js 和 mongoose 我想在 Student Grades 数组中添加另一个对象。我现在拥有的 API 代码只是更新数组而不是附加到它。我想知道将另一个对象添加到 StudentGrades 对象数组的正确方法是什么。
router.put('/:user_id', function(req, res) {
let id = req.params.user_id;
const gradeFields = {
classCode: req.body.classCode,
gradeLevel: req.body.gradeLevel,
credit: req.body.credit,
mark: req.body.mark
};
passport.authenticate('jwt', { session: false }), UserGrades.update({ user: id }, gradeFields, function(err, raw) {
if (err) {
res.send(err);
} else {
res.send(gradeFields);
}
});
});
我也尝试过使用UserGrades.findOneandUpdate,但这也在做同样的事情,它只是编辑对象中的值,而不是附加另一个对象。我猜我必须推动价值观,但我不确定如何。帮助将不胜感激
【问题讨论】:
-
你在
findOneAndUpdate中使用过$push吗?它应该可以工作。
标签: javascript node.js object mongoose