arrays - 将文档推送到 Mongoose 模型数组中的子文档中

标签 arrays node.js mongodb express mongoose

在我的公司架构中,我有一个已发布的职位,其类型为数组,并将保存子文档

companySchema.js

PostedJobs : [{
        JobName : { type: String, required : true},
        JobType : { type: String, required : true},
        JobLocation : { type: String, required : true},
        JobSalay: { type: String, required : true}
    }],

在我的/company route ,我通过模型中的 Creator 实体获取特定用户注册的所有公司

获取我使用的用户公司

  router.get('/',  isLoggedIn ,  function(req, res, next) {
    Company.find({'Creator': req.user.id}).then(function(companies) {
        res.render('Company', { "Companies" : companies });
    });
});

获取公司后,我想通过单击公司名称(唯一)来访问特定公司页面

router.get('/:name' , isLoggedIn , function(req , res , next) {
    var name = req.params.name;
    Company.findOne({Name : name}).then(function(Company) {
         res.render('dashboard',{
            "Company" : Company,
             errors : []
        });
    })
});

现在我想通过 POST 路由向该特定公司发布工作,如下所示 我的 req.body 由 JobName 、 JobType 、 JobLocation 和 JobSalary 组成,我已将它们分配给特定变量,现在我应该如何将此文档推送到数组

POST 路线

router.post('/:name' , isLoggedIn , function(req , res , next) {
    var JobName = req.body.JobName;
    var JobType = req.body.JobType;
    var JobLocation = req.body.JobLocation;
    var Salary = req.body.Salary;
    //push this job to that specific comapny
});

最佳答案

我不知道你们公司的架构,但是如果你想将PostedJobs添加到公司中,你应该在其中定义一个数组字段。

router.post('/:name' , isLoggedIn , function(req , res , next) {
    var JobName = req.body.JobName;
    var JobType = req.body.JobType;
    var JobLocation = req.body.JobLocation;
    var Salary = req.body.Salary;
    //push this job to that specific comapny
    // create the postedJob object
    var postedJob = {JobName : JobName, JobType : JobType, JobLocation : JobLocation, JobSalay:Salary};
    // find the company in DB and add the postedJob to its array of postedJobs
    var name = req.params.name;
    Company.findOne({Name : name}).then(function(company) {
        //modify and save the object received via callback
        company.postedJobs.push(postedJob);
        company.save();
    });
});

关于arrays - 将文档推送到 Mongoose 模型数组中的子文档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632649/

相关文章:

Play 框架中通过 SSL 的 MongoDB 连接

mongodb - 使用 apt-get 在 ubuntu 上安装 mongodb 失败

arrays - 跳到字符串中的下一个元音和辅音

java - 为什么在发送之前将 String 转换为字节数组?

jquery - NW JS - 从 URL 下载并保存文件

node.js - 如何调试relay-starter-kit? (数据库.js、架构.js)

javascript - 在 MongoDB 中使用原生 ES6 Promise

arrays - 将数组写入范围。只获取数组的第一个值

ios - 如何在触摸 ImageView 数组时隐藏图像?

node.js - 在部署时跳过应用服务中的端口运行状况检查?