我试图用猫鼬pre
和post
钩在我的MongoDB的后端,以在文档中的前和后的保存状态比较,以触发取决于什么改变了一些其他事件。到目前为止,但我有麻烦通过猫鼬pre
钩文档。
据该文档“前的钩两个doc.save()和doc.update()工作。在这两种情况下,这指的是文件本身......”。所以,我在这里是我的尝试。首先在我的模型/架构,我有以下代码:
let Schema = mongoose
.Schema(CustomerSchema, {
timestamps: true
})
.pre("findOneAndUpdate", function(next) {
trigger.preSave(next);
})
// other hooks
}
...然后在我的触发器文件我有以下代码:
exports.preSave = function(next) {
console.log("this: ", this);
}
};
但是,这是记录到控制台:
这样:{preSave:[功能],postSave:[AsyncFunction]}
所以显然这没有奏效。因为我希望这并没有注销的文件。为什么this
不是文件本身在这里,作为文档本身似乎说明什么? ,是有办法,我可以得到一个pre
钩文档的联系呢?如果没有,有没有人来做到这一点的另一种方法?
您不能检索在pre
钩文档。
按照documentation pre
是查询中间件和this
指查询,而不是文件被更新。