【问题标题】:How do I populate a field in a mongoose model?如何在猫鼬模型中填充字段?
【发布时间】:2016-04-25 08:17:22
【问题描述】:
var posting = new Posting({
  content: fields.content,
  creator: req.user,
});

posting.save(function(err) {
  if(err) {
    res.status(501).json({ error: err });
  } else {
    res.json({ posting: posting });
  }
});

发布模型有creator 字段,它代表User 模型的一个实例。 Post 实例在保存后以 JSON 形式返回。但是返回的Post 实例在其creator 字段中不包含来自相应User 对象的数据。它只发送User 实例的id 值。

如何在发送响应之前填充creator 字段?

【问题讨论】:

  • 内部保存回调,在返回结果前尝试调用User.populate(posting.creator)。有关填充here 的更多详细信息。让我知道这是否有效,以便我回答您的问题。
  • 没有用。我也试过这个: User.populate(posting, { path: 'creator', model: 'User' });

标签: javascript node.js mongodb mongoose mongoose-populate


【解决方案1】:

您需要在posting 实例上调用Posting 模型的.populate 方法:

posting.save(function(err) {
  if(err) {
    res.status(501).json({ error: err });
  } else {
    // Populate the 'posting' object's 'creator' field.
    Posting.populate(posting, { path: 'creator', model: 'User' }, function (err, posting) {
      res.json({ posting: posting });
    });
  }
});

【讨论】:

    猜你喜欢
    • 2021-06-29
    • 2021-05-06
    • 2021-12-25
    • 1970-01-01
    • 2014-01-08
    • 2021-05-16
    • 2021-01-25
    • 2019-11-11
    • 2020-11-02
    相关资源
    最近更新 更多