搜尋

首頁  >  問答  >  主體

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 天前769

全部回覆(1)我來回復

  • 高洛峰

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

    找到解決方法了,在find的時候先populate

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

    回覆
    0
  • 取消回覆