node.js - 在 Mongoose 中设置查找后转换 Hook 的最简单方法

标签 node.js mongodb mongoose

我是 Mongoose 的新手,已经获得了一个需要扩展的项目。我很快掌握了 pre 和 post hooks 的概念,但想知道为什么 find 没有这样的 hooks,而只有 savedelete .在检索到的对象上设置一些转换的最简单方法是什么?当然,我想在模型级别这样做,而不是每次检索一些对象时都这样做。

我找到了这个插件:https://www.npmjs.com/package/mongoose-post-find我认为它会很好地完成这项工作,但由于我是 MongoDB 的新手,我想在这里问一下,以确保我不会遇到性能问题。

最佳答案

这就是 'init' 钩子(Hook)的用途;它在每个由 find 查询加载的文档上执行。

schema.post('init', function (doc) {
    // Transform doc as needed here.  "this" is also the doc.
});

middleware docs 中仅简要提及出于某种原因。

关于node.js - 在 Mongoose 中设置查找后转换 Hook 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28339616/

相关文章:

node.js - 如何在环回中将模型设置为变量?

node.js - MongoDB - 查询ObjectId嵌套数组

javascript - Mongoose-使用 findOneAndUpdate 更新插入时出错

mongodb - Mongoose 更新数组中对象的单个值

mongodb - Mongoose 中的 findByIdAndUpdate() 和 findOneAndUpdate() 有什么区别?

node.js - nodeJS什么时候检查执行回调的回调队列?

javascript - 如何使用 GraphQL 查询返回目录中的文件列表?

Node.js 安装卡住

node.js - 在 gitlab runner 中设置 Node 环境变量

node.js - 如何将二进制数据从 post 存储到 MongoDB