gpt4 book ai didi

Mongoose pre findOneAndUpdate 钩子(Hook)问题

转载 作者:行者123 更新时间:2023-12-04 00:38:01 26 4
gpt4 key购买 nike

我正在尝试更新预钩子(Hook)的计数。问题是由于某种未知原因,findOneAndUpdate据我所知,钩子(Hook)无权访问该文档。

我想这样做:

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钩子(Hook)中的不是文档,它是一个看起来没用的 Query 对象。

我错过了什么?如何使用 pre hook 更新 findOneAndUpdate 的计数?

最佳答案

我在使用 updateOne 方法时遇到了类似的问题,并且还打算使用 updateOne 预 Hook 在保存到数据库之前进行间歇性更新。找不到让它工作的方法。我最终使用了 findOneAndUpdate 预 Hook 并在其中执行了 updateOne。

schema.pre('findOneAndUpdate', async function(next){ 
const schema = this;
const { newUpdate } = schema.getUpdate();
const queryConditions = schema._condition

if(newUpdate){
//some mutation magic
await schema.updateOne(queryConditions, {newUpdate:"modified data"});
next()
}
next()
})

关于Mongoose pre findOneAndUpdate 钩子(Hook)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com