Я прочитал о Mongoose Populate Virtuals и подумал, что это здорово, что это похоже на операцию соединения в SQL.
Когда я попробовал это в моем приложении, это не сработало,Мое приложение похоже на это, только упрощенное
У меня есть схема класса и учителя в отдельных файлах
Classroom.js
...
...
var ClassroomSchema = new Schema({
class_code:String,
teacher_id:String
});
ClassroomSchema.virtual('teacher',{
ref:'Teacher', //model to reference
localField:'teacher_id', //Class.teacher_id
foreignField:'teacher_id', //a Teacher.teacher_id
justOne:true
});
module.exports = mongoose.model('Classroom',ClassroomSchema');
Teacher.js
***
***
var TeacherSchema = new Schema({
name:String,
teacher_id:String
});
module.exports = mongoose.model('Teacher',TeacherSchema);
в моем app.js
var Classroom = require('Classroom.js');
var Teacher = require('Teacher.js');
//Find classrooms
Classroom.find({}).populate('teacher').exec(function(err,docs){
if(err) throw err
if(docs) console.log(docs);
});
Затем он возвращает классные комнаты, но с полем 'учителя', равнымна ноль
Я что-то здесь упускаю?Почему возвращается null?