作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在我的 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/
我是一名优秀的程序员,十分优秀!