如何解决$ push中的变量在Mongoose中不起作用
我有这个架构
courses: [],workshops: [],events: [],semesters: {
sem1: { cie1: [],cie2: [],cie3: [],final: [] },sem2: { cie1: [],sem3: { cie1: [],sem4: { cie1: [],sem5: { cie1: [],sem6: { cie1: [],sem7: { cie1: [],sem8: { cie1: [],},
我想在每个学期的CIE和Final Array中推送数据 我用这个来做
if(type==="cie"){
const path = "semesters.sem"+semester+".cie"+num;
// const path = "semesters.sem1.final.";
Student.update({reg_no: req.body.regno},{$push:{path:req.body.submarks}},function(err,result){
res.send(err);
});
}
if(type === "final"){
// const path = "semesters.sem"+semester+".final";
const path = "semesters.sem1.final.";
Student.update({reg_no: req.body.regno},result){
res.send(result);
});
}
我使用path变量定义路径,但是当我在push中以String形式给出路径时,它不起作用,但是当我以string变量形式给出时,它不起作用。 帮我解决这个问题。
解决方法
要将varibale用作对象键,您需要执行以下操作:
{ $push: { [path]: req.body.submarks } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。