如何在mongodb / mongoose中找到对象引用的递归路径?

时间:2017-05-11 09:01:02

标签: arrays node.js mongodb mongoose mongoose-schema

我有一个带有父引用的猫鼬模型:

const GroupSchema = new Schema({
  name: {
    type: String,
    required: true,
    unique: true
  },
  parent: {
    type: Schema.Types.ObjectId,
    ref: 'group'
  }});

我希望通过向上移动父引用并将它们添加到数组来获取对象的路径。

我尝试过这几种方式,但我被困在这里:

  const groupId = req.params.id;
  const path = [];

  function addToPath(id){
    Group.findById(id)
      .then(results => {
        if(results.parent !== null){
          path.unshift({ _id: results._id, name: results.name });
          addToPath(results.parent);
        } else {
          return res.send(path);
        }
      })
      .catch(next);
    }

    addToPath(groupId);

我似乎无法将结果输入数组。做这个的最好方式是什么?我正朝着正确的方向前进吗?

0 个答案:

没有答案