0

私は家族のためにこのようなスキーマを持っています (その子供たちは学校に在籍しています)...

var familySchema = new Schema({
    parents: [{
        firstName: String,
        lastName: String,
        email: String,
    }],
    students: [{
        firstName: String,
        lastName: String,
        grade: Number,
    }]
});

教室があり、教室に生徒がいる多くの学校について、次のように説明したいと思います...

var schoolSchema = new Schema({
    name: String,
    street: String,
    classrooms: [{
        classroomNumber: Number,
        students: [ /* I am mixed up here */ ]
    }]
});

他のコレクションで見つかった学生のオブジェクト ID の配列が必要であることをマングースに伝えるにはどうすればよいですか?

この回答から、教室で家族の文書を参照したい場合は、次のように言うことができると理解しています。

families: { type : ObjectId, ref: 'Family' }

しかし、別のコレクションのサブドキュメントに対して同じことを行うにはどうすればよいですか? (明らかでない場合は、mongo と mongoose の両方を学習しているだけです)。

4

1 に答える 1

1

sub-documents reference'student'を使用する場合は、配列への参照を変更する必要があります。

var studentSchema = new Schema({
    firstName: String,
    lastName: String,
    grade: Number,
});

var familySchema = new Schema({
    parents: [{
        firstName: String,
        lastName: String,
        email: String,
    }],
    students: [studentSchema]
});

var schoolSchema = new Schema({
    name: String,
    street: String,
    classrooms: [{
        classroomNumber: Number,
        students: [ { type: ObjectId, ref: 'Family.students' }]
    }]
});

var Student = mongoose.model('Student', studentSchema );  
var Family = mongoose.model('Family ', familySchema ); 
var School = mongoose.model('School', schoolSchema );
于 2016-02-17T04:17:02.757 に答える