猫鼬 - 如何在钩子内查询?

Mongoose - How to query within an hook?

我不是 100% 确定如何提出这个问题。

考虑以下 'message.js' 模型文件的代码。

我有一个 "post remove" 挂钩,我在其中查询用户集合,它在 user.js 文件中定义(该文件与这个文件几乎相同)。

现在,我想做的是查询 "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);
schema.pre('save', function(next) {

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

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

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