Javascript Mongoose-从“pre”保存钩子中的虚拟节点访问数据

Javascript Mongoose-从“pre”保存钩子中的虚拟节点访问数据,javascript,mongodb,express,mongoose,Javascript,Mongodb,Express,Mongoose,我需要使用新创建的文档中的数据,并使用该数据使用“pre”钩子更新值 例如,我的模型是: ... title: { type: String, required: true }, company: { type: mongoose.Schema.ObjectId, ref: 'Company', required: true } “预”挂钩是: jobSchema.pre('save', function(next) { const jobTitle = slugif

我需要使用新创建的文档中的数据,并使用该数据使用“pre”钩子更新值

例如,我的模型是:

...
title: {
  type: String,
  required: true
},
company: {
  type: mongoose.Schema.ObjectId,
  ref: 'Company',
  required: true
}

“预”挂钩是:

jobSchema.pre('save', function(next) {
  const jobTitle = slugify(this.title, { lower: true })
  const companyName = slugify(this.company.name, { lower: true })
  this.slug = jobTitle + companyName
  next()
})
我无法在钩子中访问此。公司,我不确定如何执行此操作。

因为公司是ObjectId类型,所以可以使用findById进行访问

jobSchema.pre('save', function(next) {
    let job = this;
    Company.findById(job.company, function (err, company) {
        if(err) return next(err);
        const jobTitle = slugify(job.title, { lower: true })
        const companyName = slugify(company.name, { lower: true })
        job.slug = jobTitle + companyName
        next();
    });
});

工作完美。谢谢