node.js - 猫鼬 | 在 pre('save') 钩子中操作文档
问题描述
基本上,我试图在将其保存到 mongo 数据库之前向我的文档添加一个属性。
我想在我的数据库中创建一个新的客户文档。我正在用一个简单的Customer.create(customer)
. 但在实际将其保存到数据库之前,我想customerNumber
在文档中添加一个属性。由于 create() 方法也在内部调用 save() 方法,所以我在 pre('save') 挂钩中执行此操作。由于this
关键字指的是保存钩子中的文档,我想我可以操纵它,仅此而已。但这行不通。
当然,我可以在没有钩子的情况下轻松实现这一点,只需在调用之前操作客户对象,.create()
但在我看来,如果在预保存钩子中完成,它会感觉更干净。
在猫鼬中甚至可能吗?
解决方案
只需尝试这样的预挂钩保存:
customerSchema.pre('save', function (next) {
this.customerNumber = "somethings"
return next()
});
注意:customerNumber
应该在模式中定义
推荐阅读
- timeout - Hystrix 配置:isolation.thread.timeoutInMilliseconds
- laravel - “您要查找的资源已被删除、名称已更改或暂时不可用”Azure 上的 Laravel
- node.js - 我在 ./node_modules/@coreui/angular/fesm5/coreui-angular.js 493:33-51 "export 'ɵɵdefineInjectable' is not found in '@angular/core' 中收到警告
- jira - jira 云实例中问题附件的临时链接/url
- c# - 如何使 Ibeacon estimode 统一检测所有信标
- python - 在 Keras 中进行 BatchNorm 配置编辑后无法重新加载模型
- character - ~|的意思 以 Common Lisp 格式
- ssl - 将“A”记录作为子域添加到 IP 会删除 HTTPS?
- php - 将带有星号的文本列表替换为 ul li [php]
- bash - rdd.pipe 为 grep -i shell 命令抛出 java.lang.IllegalStateException?