【发布时间】:2021-09-13 08:26:01
【问题描述】:
我正在尝试让 schema.pre("updateOne"...) 挂钩与 Mongoose 一起使用,但我不知道我做错了什么。
我有一个Department 的简单架构,它有一个name 和initials。
如果名称被更新,我也想更新首字母,所以我需要函数中的文档和查询,我需要查询以便我可以创建新的首字母,并检查它们是否已经存在,然后才允许更新,例如:
schema.pre("updateOne", function(next) {
const query = ???;
const document = ???;
document.initials = query.name.substring(0, 4).toUpperCase();
next();
});
我曾尝试使用{ document: true, query: false },但这只是完全跳过了钩子,其中的代码根本不会被执行,而且我仍然无法访问这两个。
我正在努力寻找任何有意义的资源,其中包含有关使用 pre/post updateOne 钩子的示例。
我发起 updateOne 的方式:
await DepartmentModel.updateOne(
{ _id: Types.ObjectId(id) },
{
...departmentUpdateInfo,
}
);
【问题讨论】: