2017-11-18 4 views
0

나는이 질문을 공식화하는 방법에 대해 100 % 확신하지 못했습니다.Mongoose - 후크 내에서 쿼리하는 방법?

'message.js'모델 파일의 다음 코드를 고려하십시오.

user.js 파일에 정의 된 User 컬렉션을 쿼리하는 "post remove"훅이 있습니다 (이 파일은이 파일과 거의 동일합니다).

이제 "pre save"훅 안에 Message 컬렉션 (이 파일에 정의되어 있음)을 쿼리하려고합니다.

그렇게 할 수 있습니까?

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

var User = require('./user'); 

var schema = new Schema({ 
    content: {type: String, required: true}, 
    user: {type: Schema.Types.ObjectId, ref: 'User'} 
}); 

schema.post('remove', function (message) { 
    User.findById(message.user, function (err, user) { 
     user.messages.pull(message); 
     user.save(); 
    }); 
}); 

schema.pre('save', function(next) { 

    //Here I want to query the Message collection 

    next(); 
}); 

module.exports = mongoose.model('Message', schema); 

답변

0
schema.pre('save', function(next) { 

    let MessageModel = mongoose.model('Message'); 

    MessageModel.find(findQuery, (err, results) => { 
     if(err) handleError(); 

     //Do stuff with results 
     next(); 
    }); 
});