gpt4 book ai didi

javascript - 在 Mongoose 中加载后更改模型值

转载 作者:IT老高 更新时间:2023-10-28 23:15:25 24 4
gpt4 key购买 nike

在我的 Mongoose 模型中,我有一些依赖于时间的 stats。我的想法是添加 middleware在加载模型后立即更改这些统计信息。

不幸的是,post-Hooks 上的文档有点不够清晰。看来我可以使用这样的钩子(Hook):

schema.post('init', function(doc) {
doc.foo = 'bar';
return doc;
});

他们唯一的例子涉及 console.log-输出。它没有以任何方式解释是否必须返回 doc 或 post-Hook 中的更改是否根本不可能(因为它不是异步的,复杂的想法可能几乎没有用处) .

如果 'init' 上的 pre 不是在加载时自动更新模型的正确方法,那么什么是?

最佳答案

这是我们在加载时更新模型的方式,异步工作:

schema.pre('init', function(next, data) {
data.property = data.property || 'someDefault';
next();
});

pre-init 比较特殊,其他的 hooks 签名略有不同,例如 pre-save:

schema.pre('save', function(next) {
this.accessed_ts = Date.now();
next();
});

关于javascript - 在 Mongoose 中加载后更改模型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14693523/

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