2016-10-16 7 views
0

私はセクションの配列を持つクイズモデルを持っており、各セクションにはQuestionへの参照の配列があります。 クイズに質問を設定したいと思います。mongooseでマルチレベル配列を生成する方法

QuizModel

var quizSchema = new Schema({ 
    name: String, 
    code: Number, 
    creator: String, 
    createdBy: { type: Schema.Types.ObjectId, ref: 'user' }, 
    section:[{ 
     title: String, 
     questions: [{type: Schema.Types.ObjectId ,ref: 'question'}] 
    }], 
    createdOn: {type:Date, default:Date.now} 
}); 

とquestionModel

var questionSchema = new mongoose.Schema(
    { 
     question: String, 
     answer: [String], 
     correct: Number, 
     createdOn: {type:Date, default:Date.now} 

    }); 

私は私の試み http://mongoosejs.com/docs/populate.html#deep-populate

移入するための公式マングースのマニュアルを参照して、以下のいる

quizSchema.find({_id: quiz_id}) 
.populate({ 
    path: 'section' , 
    populate: { 
    path: 'section.questions', 
    model: 'questionSchema' 
    } 
}) 
.exec(function (err, result) { 

    if (err) return done(err,null); 
    console.log("list of questions are" + result); 
    return done(err, result); 

    }); 

    } 

私が得ている出力は実際の質問ではなく、質問のIDのリストです。

{ 
    "status": "success", 
    "message": "Quiz data", 
    "result": [ 
    { 
     "_id": "57fd5912ec0ad6bc8b67d71c", 
     "name": "My Quiz", 
     "creator": "foo", 
     "__v": 0, 
     "code": 124, 
     "createdOn": "2016-10-11T21:26:42.774Z", 
     "section": [ 
     { 
      "_id": "57fd7e82c20a2fe5da3ed569", 
      "questions": [ 
      "57fd7f8560e98fe710878820", 
      "57fd7f9d60e98fe710878821", 
      "57fd81408b20dae9108d347c", 
      "57fd81408b20dae9108d347d", 
      "57fd826aea5159ea5ff2f1a9", 
      "57fd82ab0dbc0feaa753e50c", 
      "57fd82efd789afeb0353f036", 
      "57fd84b0fef6a2ed21fad5ae", 
      "57fd84cc5dab10ed471bcaf5", 
      "57fd84cd5dab10ed471bcaf6" 
      ] 
     }, 
     { 
      "title": "next section", 
      "_id": "57fff1e0f1913138c27e50a0", 
      "questions": [ 
      "57fff242f1913138c27e50a1" 
      ] 
     } 
     ] 
    } 
    ] 
} 

私は入力フィールドに何か間違っていると思いますが、わかりません。

答えて

0

ちょうど

quizSchema.find({_id: quiz_id}) 
.populate({ 
    path: 'section.questions' 
}) 
+0

ようこそ@NirajKantSinhaへのクエリを変更します。親切にansをupvote。 –

+0

完了。 "フィードバックをいただきありがとうございます!評判が15未満の人の投票が記録されますが、公開者の" –

関連する問題