我在公司删除时尝试删除mongoDb中的引用文档。但是执行后,它只删除公司而不执行中间件正文
const removedCompany = await CompanyModel.findOne({ _id: id }).remove();
内部架构文件
CompanySchema.pre('remove', (next) => {
// 'this' is the company being removed. Provide callbacks here if you want
// to be notified of the calls' result.
UserCompany.remove({ companyId: this._id }).exec();
next();
});
答案 0 :(得分:0)
lambda函数实现"这"作为词汇,所以它不会起作用 使用旧式
CompanySchema.pre('remove', function(next){
// 'this' is the company being removed. Provide callbacks here if you want
// to be notified of the calls' result.
UserCompany.remove({ companyId: this._id }).exec();
next();
});
答案 1 :(得分:0)
注意:
print()
没有查询挂钩,仅适用于文档。如果您设置了“移除”挂钩,则会在您拨打remove()
时触发,而不是在您拨打myDoc.remove()
时触发。
如果您重写查询以使用findOneAndRemove
,则可以为此添加中间件/挂钩。
还要考虑Shubham关于箭头函数表达式的答案。