2017-10-08 76 views
0

所以我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

find()而不是where().equals()內嘗試。你並不需要爲了尋找老師的課程而填充所有課程。

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

我知道它與「teachers._id」(甚至我在Schema中定義的「id」)一起工作。即使我的查詢與「teachers._id」 – Wolfdog