我是Mongoose的新手并且已经获得了一个扩展项目。我很快就掌握了前后钩子的概念,但是想知道为什么find
没有这样的钩子,但只针对save
和delete
。在检索到的对象上设置某些转换的最简单方法是什么?当然,我想在模型级别执行此操作,而不是每次检索某些对象时都这样做。
我找到了这个插件:https://www.npmjs.com/package/mongoose-post-find我觉得它能很好地完成这项工作,但由于我是MongoDB的新手,我想在这里问一下,确保我不会在性能上最终问题。
答案 0 :(得分:9)
这就是'init'
钩子的用途;它是在find
查询加载的每个文档上执行的。
schema.post('init', function (doc) {
// Transform doc as needed here. "this" is also the doc.
});
由于某些原因,它只在middleware docs中被简要提及。