首页 > 解决方案 > 猫鼬 | 在 pre('save') 钩子中操作文档

问题描述

基本上,我试图在将其保存到 mongo 数据库之前向我的文档添加一个属性。

我想在我的数据库中创建一个新的客户文档。我正在用一个简单的Customer.create(customer). 但在实际将其保存到数据库之前,我想customerNumber在文档中添加一个属性。由于 create() 方法也在内部调用 save() 方法,所以我在 pre('save') 挂钩中执行此操作。由于this关键字指的是保存钩子中的文档,我想我可以操纵它,仅此而已。但这行不通。

当然,我可以在没有钩子的情况下轻松实现这一点,只需在调用之前操作客户对象,.create()但在我看来,如果在预保存钩子中完成,它会感觉更干净。

在猫鼬中甚至可能吗?

标签: node.jsmongodbmongoose

解决方案


只需尝试这样的预挂钩保存:

customerSchema.pre('save', function (next) {
  this.customerNumber = "somethings"
  return next()
});

注意customerNumber应该在模式中定义


推荐阅读