我正在考虑使用全局插件为mongoose中的所有模式添加预保存更新挂钩。
The manual recommends在预挂钩中添加单独的更新命令,因为this
引用了文档的查询插入内容:
schema.pre('update', function() {
this.update({},{ $set: { updatedAt: new Date() } });
});
上面的代码是否会导致额外的数据库写入?此方法是否为调用update
创建单独的数据库更新,为钩子update
创建另一个更新?
答案 0 :(得分:1)
按update
source code和doc,此代码
this.update({},{ $set: { updatedAt: new Date() } });
属于
update(criteria, doc)
它不会执行,只会在$set: { updatedAt: new Date() }
发生前向update operation
添加update
。
上面的代码是否会导致额外的数据库写入?
没有
此方法是否为调用更新创建单独的数据库更新,为钩子更新创建另一个写入?
没有