javascript - 对象数组的 Mongoose 模式以及更新对象时应添加

标签 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
    }
}

但是我没有得到上面代码所示的方式

最佳答案

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

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

注意带有下划线的大驼峰式大小写对我来说看起来很奇怪。

关于javascript - 对象数组的 Mongoose 模式以及更新对象时应添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38371715/

相关文章:

javascript - 无法使用 "xmlbuilder"node.js 模块在 XML 中创建 CDATA 部分

javascript - page.evaluate 对比。 Puppeteer $ 方法

javascript - mongodb 中 db.collection.find() 的返回类型是什么

node.js - 获取对象数组中每个嵌套对象的虚拟属性?

javascript - 如何使用 Bluebird 错误处理程序?

javascript - 将 JSON 数据与 jQuery highcharts 插件结合使用

node.js - 在 NodeJS 0.10.8 中安装 Mongoose

java - 如何使用spring数据从mongo集合中仅获取指定的对象类

linux - MongoDB转储和还原

javascript - Prev 和 Next 按钮在数组中切换图像(图像链接)???