Programing

Mongoose에서 다른 스키마 참조

lottogame 2020. 8. 28. 07:49
반응형

Mongoose에서 다른 스키마 참조


다음과 같은 두 개의 스키마가있는 경우 :

var userSchema = new Schema({
    twittername: String,
    twitterID: Number,
    displayName: String,
    profilePic: String,
});

var  User = mongoose.model('User') 

var postSchema = new Schema({
    name: String,
    postedBy: User,  //User Model Type
    dateCreated: Date,
    comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});

위의 예처럼 연결하려고했지만 어떻게해야할지 모르겠습니다. 결국 내가 이런 일을 할 수 있다면 내 삶이 아주 편해질거야

var profilePic = Post.postedBy.profilePic

채우기 방법이 당신이 찾고있는 것 같습니다. 먼저 게시물 스키마를 약간 변경합니다.

var postSchema = new Schema({
    name: String,
    postedBy: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
    dateCreated: Date,
    comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});

그런 다음 모델을 만드십시오.

var Post = mongoose.model('Post', postSchema);

그런 다음 쿼리를 만들 때 다음과 같이 참조를 채울 수 있습니다.

Post.findOne({_id: 123})
.populate('postedBy')
.exec(function(err, post) {
    // do stuff with post
});

부록 : "Populate"를 언급 한 사람은 아무도 없습니다. --- Mongooses Populate Method를 살펴 보는 것은 시간과 돈의 가치가 매우 높습니다.

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

참고 URL : https://stackoverflow.com/questions/18001478/referencing-another-schema-in-mongoose

반응형