将虚拟属性值传递给Mongoose的pre-save钩子

时间:2019-03-04 20:41:26

标签: mongoose

在我的MongoDB / Node后端中,我正在使用Mongoose中间件(前/后挂钩),以便在文档的某些方面发生更改时生成注释。一切都按预期工作-除了一件。我需要知道最后更改记录的人的_id-这样才能包含在生成的注释中。

现在,如果可以将此值保存到文档的属性中,那将非常简单。我只是将该值分配给“ lastModifiedBy”之类的属性。但是,此项目的方向不允许这样做。

那么,我想知道我是否可以使用虚拟财产来做到这一点?我很清楚如何从文档中存在的数据生成虚拟属性,如下所示:

personSchema.virtual('name.full').get(function () {
  return this.name.first + ' ' + this.name.last;
});

但是如果不从文档模型中已经存在的数据中解析出值,这将如何工作?

为了澄清,在更新记录的函数中,我确实可以访问该值。但是,如何通过pre-save钩子将该值传递给触发器文件?这就是我要努力解决的问题。如果可能的话,对其进行基本演示将很有帮助。或者,如果有其他方法可以做到这一点,我也会对此持开放态度。

1 个答案:

答案 0 :(得分:0)

这是将值传递到预先保存的钩子的方法:使用ES6符号,如下所示:

--with-http_sub_module