똑같은 삽질은 2번 하지 말자
Mongoose 의 populate 본문
populate : Mongoose의 document(Table)이 다른 document의 ObjectId를 사용하고 있을때,
해당 ObjectId의 요소들을 가져오기 위한 편리한 기능이다.
var PostSchema = mongoose.Schema({
writer: {
type: mongoose.Schema.ObjectId,
ref: 'users7' // users7 컬렉션을 Reference
}
});
var UserSchema = mongoose.Schema({
email: {
type: String,
'default': ''
},
hashed_password: {
type: String,
'default': ''
},
name: {
type: String,
index: 'hashed',
'default': ''
},
salt: {
type: String
},
created_at: {
type: Date,
index: {
unique: false
},
'default': Date.now
},
updated_at: {
type: Date,
index: {
unique: false
},
'default': Date.now
},
provider: {
type: String,
'default': ''
},
});
users7 collection을 참조해서 name, provider, email 요소만 가져오겠다는 populate
populate로 writer를 가져오지 않으면 그냥 Objectid 만 찍혀있기때문에 이게 뭔지 알 수가 없다.
PostSchema.statics = {
list: function(options,callback){
var criteria = options.criteria || {};
// writer 의 name provider email 만 가져와서 보겠다.
this.find(criteria)
.populate('writer','name provider email')
.sort({'created_at': -1})
.limit(Number(options.perPage))
.skip(options.perPage * options.page)
.exec(callback);
}
}
'Node' 카테고리의 다른 글
Node.js 복습 #2 bodyParser , 응답메소드(res) (0) | 2020.06.21 |
---|---|
Node.js 복습 #1 nodemon, __dirname , static 파일 설정 (0) | 2020.06.20 |
(Node.js) password 암호화 모듈 Crypto(crypto.js에 대해) (0) | 2019.11.01 |
(Node.js) Serialize 와 Deserialize 로그인 정보 저장 (1) | 2019.10.29 |
(Node.js)Sokcet 통신을 이용한 1:1 chat (0) | 2019.10.25 |
Comments