Skip to content

deep-populate를 이용해 멀티 populate를 쉽게

mongoDB는 join을 지원하지 않지만,
mongoose를 이용하면 populate를 이용해 join기능을 구현할 수 있다.
하지만 다중(N-many) populate를 사용하려면 코드를 일일이 삽입해야 한다.

하지만 mongoose-deep-populate를 이용하면 쉽게 multi populate를 구현할 수 있다.
https://github.com/buunguyen/mongoose-deep-populate


var UserSchema = new Schema({})

var CommentSchema = new Schema({
  user  : {type: Number, ref: 'User'}
})

var PostSchema = new Schema({
  user    : {type: Number, ref: 'User'},
  comments: [{type: Number, ref: 'Comment'}],
  likes   : [{user: {type: Number, ref: 'User'}}],
  approved: {status: Boolean, user: {type: Number, ref: 'User'}}
})

var deepPopulate = require('mongoose-deep-populate')(mongoose);
PostSchema.plugin(deepPopulate, options);

저 대 괄호가 멋지다..

post가 comments를 가져올때 한번의 API 호출만으로 가능하다.

속도 향상을 위해 구현했는데 mongoose의 populate는 많이 쓸수록 자원도 많이 차지하고 속도도 느련진다고…

Published inNodeJs