0
Webアプリケーションを構築しようとしています。mongoose findメソッドからデータを取得し、他のスキーマに挿入する
ウェブサイトでは、mongooseからmongodbからインストラクターデータを取得する必要があり、その中のいくつかは他のスキーマ(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');
}
});
-----スキーマ-------------------
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 }
}
});
私はinstuctorlistの電子メールと電話を取得したい。(他の人req.bodyのものです)、 はmongodbに保存するためにnewcourse変数に入れます。 ありがとうございます。
答えをいただき、ありがとうございます。私はそれを試み、同様のケースを見たが、正確に理解していない。もう一度ありがとうございます:) –
refはコースを指すことを意味します。どうもありがとうございました! –
はいrefは、コースのIDをデータベースのインストラクターテーブルに保存します。したがって、同じ値を再度保存する必要はありません。実際の値を取得するには、 'populate'を使用する必要があります。その機能も見てください –