你能在mongoose中执行多个嵌套的填充吗?

时间:2016-10-28 15:36:51

标签: node.js mongoose coffeescript populate mongoose-populate

所以,我正在构建一个应用程序,它有一个餐厅模型,餐厅有评论。评论有一个我填充的用户(coffeescript):

exports.listOne = (req, res) ->
  Restuarant.findOne 
    _id: req.params.id
  .populate({ path: 'reviews' })
  .exec (err, docs) ->
    options = 
      path: 'reviews.userId'
      model: 'User'
    if err
      return res.json(500)
    Venue.populate docs, options, (err, venues) ->
      res.json venues
      return
    return

问题是用户有一个我想要填充的酒店模型的参考,我可以在这个查询中填充酒店吗?

1 个答案:

答案 0 :(得分:1)

Mongoose现在支持人口密集,这可以解决你的问题。你应该能够将这样的东西传递给你的填充物(很难说没有看到模型):

.populate({
    path: 'reviews',
    model: 'Review',
    populate: {
      path: 'user',
      model: 'User',
      populate: {
        path: 'hotel',
        model: 'Hotel'
      }
    }
  })...

这是一篇关于人口的好文章,可能有所帮助:Dataset.transpose()