2016-11-23 19 views
0

パラメータURLは次のようなものです:http:apiurl/api/subjects/subject/studentid戻りコレクションは、私は2つのコレクションを持っている

私には、その件名に属する学生の情報が返されます

これまでのところ、私はこの行っている:

router.get('/subjects/:subject/:studentid', function (req, res) { 
    Subject.find({name: req.params.name}, function (err, subject) { 
     Student.find({id:req.params.studentid},function (err, student)) 
     if (err) res.send(500, err.message); 
     console.log(student); 
     res.status(200).jsonp(student); 
    }); 
}); 

をしかし、私はそれが

+1

生徒IDがある場合は、そのIDで「Student」コレクションに問い合わせるだけです。 – chridam

+0

私は、そのSubjectに属する学生が見ているURLを見て確認したい、そうでなければ私はただ学生をqueringしていますが、彼が特定の科目に属しているかわかりません。 – Lima9

+1

@ Lima9:あなたは学生の主題をurlで見て見たいと言っていますので、お互いに関連していない科目名と学生IDを入れることができます。この場合、学生仮説の主題は失敗に終わることがあります。あなたは、学生のスキーマにサブジェクトIDを入れて、それから学生を見つけてサブジェクトIDを入力することによって、このことを達成できます。 – Sam

答えて

1

studentIdStudents_idとまったく同じタイプであることを確認します。

次に、populationを使用して必要なものを達成できます。たとえば、

+0

によって区切られていますありがとう、人口は本当にトリックでした – Lima9

0

あなたは「名前」のparamを持っていないように、あなたのparamsは、「対象」という名前されているようだが仕事を得ることができませんと "studentid"。

このようなあなたのルーターの定義を変更してみてください:

router.get('/subjects/:subjectName/:studentid', function (req, res) { 
    Subject.find({name: req.params.subjectName}, function (err, subject) { 
     Student.find({id:req.params.studentid},function (err, student)) 
     if (err) res.send(500, err.message); 
     console.log(student); 
     res.status(200).jsonp(student); 
    }); 
}); 
+0

後であなたがそれを命名するなら、次のようにすることができます: 'name:req.params。 'URLに続くもの:/" ' – Lima9

関連する問題