gpt4 book ai didi

node.js - 在 findOneAndUpdate() 的 pre hook 上修改 mongoose 文档

转载 作者:搜寻专家 更新时间:2023-10-31 23:29:24 24 4
gpt4 key购买 nike

我有一个 Mongoose 模式

var schema = new Schema({
id:Number
updated_at:Date
});

我正在使用 findOneAndUpdate() 来更新这个模型

model.findOneAndUpdate(
{ id: json.id },
json,
{
upsert: true,
runValidators: true
})
.then(() => {
recordsUpdated++;
})
.catch((err) => {
this.emit('error', err);
});

json 中传递的值不正确,我需要对其进行一些修改。我正在寻找一个预 Hook 来进行修改。我试过了

faction.pre('findOneAndUpdate', function (next) {
this.update({ $set: { updated_at: this.getUpdate().updated_at * 1000 } });
next();
});

简而言之,我想在更新数据库之前将以秒为单位的时间戳转换为毫秒,但这不起作用。

最佳答案

在盲目地到处扔石头之后,对我有用的是

schema.pre('findOneAndUpdate', function (next) {
this._update.updated_at *= 1000;
next();
});

简而言之,需要修改 _update 属性中的文档。

关于node.js - 在 findOneAndUpdate() 的 pre hook 上修改 mongoose 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44614734/

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