2016-09-05 12 views
0

몽구스 어린이 인구에 관한 사례 나 문서를 찾는 데 어려움을 겪고 있습니다. 문서에몽구스 어린이 참조

http://mongoosejs.com/docs/populate.html

자신이 갖고 :

그것은 의미가
var mongoose = require('mongoose') 
    , Schema = mongoose.Schema 

var personSchema = Schema({ 
    _id  : Number, 
    name : String, 
    age  : Number, 
    stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }] 
}); 

var storySchema = Schema({ 
    _creator : { type: Number, ref: 'Person' }, 
    title : String, 
    fans  : [{ type: Number, ref: 'Person' }] 
}); 

var Story = mongoose.model('Story', storySchema); 
var Person = mongoose.model('Person', personSchema); 

, 사람이 모든 이야기의 목록을 가지고 많은 이야기 때문에 '부모'필드 '이야기'를 할 수 있습니다

내가 이해하기 힘든 것은 사람의 스키마에 스토리를 어떻게 밀어 넣는 지입니다.

var mongoose  = require ('mongoose'), 
    Schema  = mongoose.Schema; 

var assignmentSchema = new Schema (
    { 
     _id: String, 
     assignName: String, 
     modInsID: [{ type: Schema.Types.Number, ref: 'ModuleInst' }], 
     studentAssigns: [{type: Schema.Types.ObjectId, ref: 'StudentAssign' }] 
    } 
); 

module.exports = mongoose.model ('Assignment', assignmentSchema); 

studentAssigns 저장 한 후 계단식 삭제에 대한 .pre 미들웨어와 함께 사용할 수있는 studentAssigns의 모든 아이디의 :

예를 들어, 나는 지정 스키마 있습니다. 그래서 지금

내 StudentAssign 스키마 :

var mongoose  = require ('mongoose'), 
    autoIncrement = require ('mongoose-auto-increment'), 
    Schema  = mongoose.Schema; 

var connection = mongoose.createConnection("************"); 
autoIncrement.initialize(connection); 


var studentAssignSchema = new Schema (
    { 
     assID: [{ type: Schema.Types.String, ref: 'Assignment' }], 
     studentID: [{ type: Schema.Types.Number, ref: 'Student' }] 
    } 
); 

var StudentAssign = connection.model('StudentAssign', studentAssignSchema); 
module.exports = mongoose.model ('StudentAssign', studentAssignSchema); 

당신은 이미 여기에

내 API 코드 ' Assignment'를 참조하고 볼 수 있듯이 :

studentAssign POST :

router.route('/student-assignment').post(function(req, res) { 
    var studentAssign = new StudentAssign(); 
    studentAssign.assID = req.body.assID; 
    studentAssign.studentID = req.body.studentID; 

    studentAssign.save(function(err, studentAssign) { 
     if(err) console.log(err); 
     res.status(200).json(studentAssign); 
    }); 
}) 

그래서 내가 혼란스러워하는 부분은 내가 어디에서 그는 'studentAssign'을 'Assignment'스키마의 'studentAssigns 배열에 ?? 어떤 설명과

aaron.stories.push(story1); aaron.save(callback);

:

[ 
    { 
    "_id": "As 1", 
    "assignName": "Software Implementation", 
    "__v": 0, 
    "studentAssigns": [], 
    "modInsID": [ 
     { 
     "_id": 22, 
     "semester": "TRI 3", 
     "year": 2016, 
     "__v": 0, 
     "modID": [ 
      111 
     ] 
     } 
    ] 
    } 
] 

문서는 단지 분명히 그들은 단지 보여으로하지 않습니다 여기

내 현재의 API를 JSON 콜백입니까?

시도 : var assignment = new Assignment(); assignment.studentAssigns.push(studentAssign); 아무 것도 저장되지 않습니다 ??

+0

당신이 (assignment.save 전화나요)로 밀어해야합니다; ? – Molda

+0

@Molda yup 죄송합니다. 해당 부분을 복사하지 않았습니다. –

답변

0

당신의 모델은 상태 :

assID: [{ type: Schema.Types.String, ref: 'Assignment' }], 
studentID: [{ type: Schema.Types.Number, ref: 'Student' }] 

난 당신 studentID에 assID의 여러 과제와 다수의 학생을 저장하지 않으 코드에서 생각합니다. 모델을

assID: { type: Schema.Types.String, ref: 'Assignment' }, 
studentID: { type: Schema.Types.Number, ref: 'Student' } 

으로 변경하십시오. 저장 코드는 동일하게 유지 될 수 있습니다. 당신은 예를 들어 여러 과제에 대해 저장할 경우

, 당신은 assID 배열 ;-)