search

Home  >  Q&A  >  body text

javascript - mongoose获取树形结构

结构如下

var LabelSchema = new mongoose.Schema({
  name: String,
  parent: {type: ObjectId, ref: 'Label', default: null},
  children: [{type: ObjectId, ref: 'Label'}]
})

希望一次性获取完整的树形结构

Label.find({parent: null})
    .populate('children')
    .exec(function(err, labels) {
      if (err) {
        console.log(err)
      }
      // res.send('test')
      res.send({
        msg: true,
        result: labels
      })
    })

使用了populate方法,但是只能获取第一层的childern引用,第二层的childern仍然是objectId;除了自己通过objectId查找对象,还有没有其他更简便的方法获取完整树形结构?

高洛峰高洛峰2767 days ago773

reply all(1)I'll reply

  • 高洛峰

    高洛峰2017-05-02 09:27:52

    Found the solution, populate first when you find it

    pointSchema.pre('find', function(next) {
      this.populate('children')
      next()
    })

    reply
    0
  • Cancelreply