所以我有 CourseSchema ,在里面,我有:
teachers: [{
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "Teacher"
},
username: String
}]
现在我想为一位老师找到所有课程。我想像这样做:
Course.find().where("teachers.id").equals(user._id).exec(function(err, courses) {};
但是这总是返回空数组[]。现在,我的猜测是因为教师字段是一个数组,而不仅仅是一个字符串。那么数组的.where()有替代方法吗?
另外,我是否需要.populate()所有课程然后搜索?
答案 0 :(得分:0)
在find()
而不是where().equals()
内尝试查询。你并不需要填写所有课程只是为了找到老师的课程。
Course.find({"teachers.id" : user._id}, function (err, courses) {
if (err) console.log(err);
// Your functions
});