node.js - 在 mongoose 中填充 'find' 的 post hook middlewhere

标签 node.js mongodb mongoose middleware mongoose-populate

我有一个文章架构,用于用户在我的网站上发布的文章。它引用了用户集合:

var ArticleSchema = new Schema({
  title: { // NO MARKDOWN FOR THIS, just straight up text for separating from content
    type: String,
    required: true
  },
  author: {
    type: Schema.Types.ObjectId,
    ref: 'User'
  }
});

我想在所有 find/findOne 调用上有一个 post hook 来填充引用:

ArticleSchema.post('find', function (doc) {
  doc.populate('author');
});

由于某种原因,钩子(Hook)中返回的文档没有填充方法。我是否必须使用 ArticleSchema 对象而不是在文档级别进行填充?

最佳答案

以上答案可能不起作用,因为它们通过不调用 next 来终止预 Hook 中间件。正确的实现应该是

productSchema.pre('find', function (next) {
this.populate('category','name');
this.populate('cableType','name');
this.populate('color','names');
next();

});

关于node.js - 在 mongoose 中填充 'find' 的 post hook middlewhere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987054/

相关文章:

javascript - nodejs - request.get(url) 在 yahoo.com 的情况下返回二进制数据

node.js - 使用 Twilio API 识别群聊中的所有号码

javascript - js ':' 预期 Node js

python - mongodb批量插入、更新值

node.js - replset 中的服务器不是指定 setName 的一部分

node.js - 使用 mongoose findOne/save 保存对象不起作用

javascript - 引用错误: utea is not defined?

node.js - 如何使用 By.xpath() 查找具有特定子元素的父元素?

javascript - Mongoose 中嵌套查询执行的问题

node.js - 检索最近 6 分钟内所有 `date` 的内容