应该添加对象数组和更新对象的Mongoose模式

时间:2016-07-14 10:25:06

标签: javascript node.js mongodb express

var mongoose = require('mongoose');
module.exports = mongoose.model('GridModel',  {  
    Request_Id : { type : Number, required : true },    
    viewStudents : { type : Array , default : [] }
});

以上是mongoose模型,在更新到viewStudents文件之后应该添加。

查询更新是:

var conditions = { Request_Id : req.body.Request_Id},
    update = {  
       viewStudents : {   
         Student_Name:req.body.Student_Name,
         Student_Id:req.body.Student_Id,
         Resume:req.body.Resume}
    },
    options = { multi : true};

GridModel.update(conditions, update, options, callback);

function callback(err,res2) {
    if(err)
        res.send(err);
    getGridRequests(res);
}

两次更新后的最终输出应该是

viewStudents: {
    {
         Student_Name: asa,
         Student_Id : 3,
         Resume : No
    } 
    {
        Student_Name: asfsdfa,
        Student_Id : 34234,
        Resume : No
    }
}

但我没有按照上面代码所示的方式

1 个答案:

答案 0 :(得分:0)

GridModel没有Request_Id属性。更新应该有$push修饰符:

{  
    viewStudents : {
        $push: {
            Student_Name:req.body.Student_Name,
            Student_Id:req.body.Student_Id,
            Resume:req.body.Resume
        }
    }
}

注意带下划线的上骆驼箱看起来很奇怪。