Wednesday 26 April 2017

mongoose get data from find method and insert them in other schema

I am trying to build a web application.

At the website, I need to get instructor data from mongodb with mongoose and some of them will be inserted in other schema(Course).

if (!req.body) return console.log("No data sent");
    var newcourse;
    var iname = req.body.iname;
    var results;


/*ilist.find({ name: iname }).toArray((err, result) => {
    if (err) return console.log(err);
    results = result;
});*/
dbs.collection('instructors').find({ name: iname }).toArray((err, result) => {
    results = result;
    //console.log(result);        
});
// console.log(ilist.data);

newcourse = new clist({
    'coursename': req.body.coursename, 'coursenumber': req.body.coursenumber, 'coursecredit': req.body.coursecredit
    , 'courseroom': req.body.room, 'instructors.name': req.body.iname, 'instructors.email': results.email, 'instructors.phone': results.phone, 'instructors.role': req.body.role
});

newcourse.save(function (err) {
    if (err) {
        console.log(err);
        res.status(400);
        res.send(err);
    }
    else {
        res.status(200);
        console.log('A new course has been registered!');
        res.redirect('/course');
    }
});

-----schema-------------------

var instructorlist = mongoose.Schema({
    name: { type: String, required: true },
    age: { type: Number, required: true },
    gender: { type: String, required: true },
    DOB: { type: Date, required: true, default: Date.now },
    email: { type: String, required: true },
    phone: { type: Number, required: true },
    address: { type: String, required: true },
    dateofstart: { type: Date, required: true},
    courses: {
        coursename: { type: String, required: false },
        coursenumber: { type: Number, requird: false },
        coursecredit: { type: Number, required: false },
        courseroom: { type: String, required: false }
    }
});
var courselist = mongoose.Schema({
    coursename: { type: String, required: true },
    coursenumber: { type: String, required: true },
    coursecredit: { type: Number, required: true },
    courseroom: { type: String, required: false },
    courseregisteddate: {type: Date, default: Date.now},
    students: {
        name: { type: String, required: false },
        phone: { type: Number, requird: false },
        email: { type: String, required: false },
        class: { type: String, required: false }
    },
    instructors: {
        name: { type: String, required: false },
        phone: { type: Number, requird: false },
        email: { type: String, required: false },
        role: { type: String, required: false }
    }
});

I want to get instuctorlist's email and phone.(others are from req.body) and put it into newcourse variable for saving in mongodb. Thank you for reading it.



via Chi Seong Oh

No comments:

Post a Comment