查找ref ID在数组中的所有文档

时间:2017-10-08 23:24:20

标签: arrays node.js mongodb mongoose

所以我有 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()所有课程然后搜索?

1 个答案:

答案 0 :(得分:0)

find()而不是where().equals()内尝试查询。你并不需要填写所有课程只是为了找到老师的课程。

Course.find({"teachers.id" : user._id}, function (err, courses) {
   if (err) console.log(err);
   // Your functions
});