【问题标题】:How can I deep populate multiple paths in mongoosejs?如何在 mongoosejs 中深度填充多个路径?
【发布时间】:2016-05-28 11:16:33
【问题描述】:

是否可以使用 mongoose 同时填充多个路径?我正在尝试做这样的事情:

User.findById(_id)
  .populate({
    path:'friendIds',
    model:'User',
    populate: {
      path: 'reviewIds',
      model: 'Review',
      populate: [{
        path: 'userId',
        model: 'User'
      }, {
        path: 'locationId',
        model: 'Location'
      }]
    }
  })

用户的朋友是用户,他们写过评论,有作者(用户)和位置。我正在尝试深入填充所有这些信息。以上是我最近的尝试,它不起作用。有没有办法做到这一点?

作为参考,如果我不想填充多个路径,它可以像这样正常工作:

User.findById(_id)
  .populate({
    path:'friendIds',
    model:'User',
    populate: {
      path: 'reviewIds',
      model: 'Review',
      populate: {
        path: 'locationId',
        model: 'Location'
      }
    }
  })

但是我的评论并没有填写用户。

mongoose docs 中阅读有关深度填充的更多信息。

【问题讨论】:

    标签: mongoose mongoose-populate


    【解决方案1】:

    是的,它确实有效。我已经用过很多次了。这是一个例子:

    Model.find()
    .populate({
        path: 'replies',
        populate: [{
          path: 'user',
          select: 'displayName username'
        }, {
          path: 'replies',
          populate: {
            path: 'user',
            select: 'displayName username'
          }
        }]
    }).exec(...
    

    【讨论】:

      猜你喜欢
      • 2014-09-20
      • 1970-01-01
      • 2019-07-06
      • 2015-01-20
      • 1970-01-01
      • 2017-10-08
      • 2016-06-27
      • 2019-04-05
      • 1970-01-01
      相关资源
      最近更新 更多