gpt4 book ai didi

javascript - Mongoose - 从 'pre' 保存 Hook 中的虚拟节点访问数据

转载 作者:行者123 更新时间:2023-12-02 21:19:37 24 4
gpt4 key购买 nike

我需要使用新创建的文档中的数据,并使用该数据通过“pre” Hook 更新值。

例如,我的模型是:

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

...

“pre” Hook 是:

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()
})

我无法在钩子(Hook)中访问 this.company,并且我不确定如何做到这一点。

最佳答案

由于company是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();
});
});

关于javascript - Mongoose - 从 'pre' 保存 Hook 中的虚拟节点访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60882100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com