2017-12-04 21 views
1

in meinem Unternehmen Schema ich habe einen Auftrag geschrieben, welcher Typ Array und SubdokumentePush-Dokument in Unter Dokument in Array von Mungo Modell

companySchema.js

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

in meinem/Firmen Route i halten erhalten alle Unternehmen von bestimmten Benutzer durch Creator Einheit in Modell registriert i

zu erhalten, dass Benutzer Unternehmen verwenden

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

nach Unternehmen immer ich will auf klicken Firmennamen (unique)

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 : [] 
     }); 
    }) 
}); 

jetzt eine bestimmte Firma Seite besuchen ich einen Job auf diese spezifischen Unternehmen von einer POST Route stellen als meine req.body bestehen von Jobname, Jobtype, JobLocation und JobSalary, die ich zu einer bestimmten variablen zugewiesen haben nun, wie soll ich drücken; doc Array

POST Route

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 
}); 

Antwort

1

I kn nicht ow das Schema Ihrer Firma, aber wenn Sie PostedJobs zu den Firmen hinzufügen möchten, sollten Sie ein Arrayfeld darin definieren.

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) { 
     company.postedJobs.push(postedJob); 
     company.save(); 
    }); 
}); 
+0

i hatte postedJobs vom Typ Array, das –

+0

PostedJobs ist: [{ Jobname: {type: String, erforderlich: true}, Jobtype: {type: String, erforderlich: true}, JobLocation: {type : String, erforderlich: true}, JobSalay: {type: String, erforderlich: true} }], –

+1

Vielen Dank, dass es funktioniert –

Verwandte Themen