Mongoose update pre hook - 额外的数据库写入

时间:2016-02-25 02:41:03

标签: mongoose mongoose-schema

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

The manual recommends在预挂钩中添加单独的更新命令,因为this引用了文档的查询插入内容:

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

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

1 个答案:

答案 0 :(得分:1)

update source codedoc,此代码

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

属于

update(criteria, doc)

它不会执行,只会在$set: { updatedAt: new Date() }发生前向update operation添加update

  

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

没有

  

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

没有