結構如下
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查找對象,還有沒有其他更簡便的方法獲取完整樹形結構?
高洛峰2017-05-02 09:27:52
找到解決方法了,在find的時候先populate
pointSchema.pre('find', function(next) {
this.populate('children')
next()
})