2017-10-08 8 views
0

にあるすべての文書を検索: だから私は<em>CourseSchema</em>を持っており、その中に、私が持っているrefのIDが配列

teachers: [{ 
    id: { 
     type: mongoose.Schema.Types.ObjectId, 
     ref: "Teacher" 
    }, 
    username: String 
}] 

は今、私は1人の教師のためのすべてのコースを見つけたいです。

Course.find().where("teachers.id").equals(user._id).exec(function(err, courses) {}; 

しかし、これは常に空の配列[]を返します。さて、私の推測は、先生のフィールドは配列であり、文字列ではないからです。したがって、配列のための.where()の代替手段がありますか?

また、すべてのコースを.populate()してから検索する必要がありますか?

答えて

0

where().equals()の代わりにfind()のクエリを使用してみてください。あなたは本当に教師のコースを見つけるためだけにすべてのコースを設定する必要はありません。

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

私は "teachers._id"(これはSchema "id"で定義されています)で動作するようにしました。私の質問でも "teachers._id" – Wolfdog

関連する問題