我试图在预先钩子上更新计数。问题在于由于某种未知的原因,findOneAndUpdate
钩子没有访问文档的权限,据我所知。
我想要做到这一点:
source.pre('findOneAndUpdate', function (next) {
console.log('------------->>>>>> findOneAndUpdate: ');
this.objects = this.objects || [];
this.people = this.people || [];
this.events = this.events || [];
this.objectCount = this.objects.length;
this.peopleCount = this.people.length;
this.eventCount = this.events.length;
next();
});
但出于某种原因,钩子中的this
不是文档,而是一个看起来毫无用处的查询对象。
我错过了什么?如何使用预处理钩子来更新findOneAndUpdate上的计数?
_update
可能有点 hacky,但在当前的 API 中,有 Query.prototype.getUpdate 和 Query.prototype.setUpdate 这两个方法,看起来是一种支持的实现方式。 - Mr5o1