1

我正在考虑使用全局插件为我在猫鼬中的所有模式添加一个预保存更新挂钩。

手册建议在 pre-hook 中放置一个单独的更新命令,因为this引用了文档的查询 insetad:

schema.pre('update', function() {
  this.update({},{ $set: { updatedAt: new Date() } });
});

上面的代码是否会导致额外的数据库写入?此方法是否为调用创建单独的数据库更新update并为钩子创建另一个写入update

4

1 回答 1

1

根据update 源代码文档,此代码

this.update({},{ $set: { updatedAt: new Date() } });

属于

update(criteria, doc)

它不会执行,它只会添加$set: { updatedAt: new Date() }update operation之前update发生的事情。

上面的代码是否会导致额外的数据库写入?

不,

此方法是否为调用更新创建单独的数据库更新并为钩子更新创建另一个写入?

不,

于 2016-02-25T04:07:21.293 回答