tre*_*ten 5 recursion populate mongoose mongodb node.js
我有一个很大的数据集,其中每个项目都有一个hierarchy带有children属性的字段,该属性是对其他项目的引用的数组。我想获取所有顶级父项,并一直将所有子项填充到叶子中。
Item = new Schema({
...,
hierarchy: {
children: [{
type: mongoose.Schema,
ref: 'Item'
}],
...
})
Run Code Online (Sandbox Code Playgroud)
填充只会填充一个级别,不会继续沿树向下移动。我也尝试过猫鼬深人群,但无法使其正常工作。我可以编写一个递归函数以使其填充所有字段吗?我想到的一个主意是这样写:
items = _.map(items, function(item){
return populateChildren(item);
});
function populateChildren(item){
if(item.hierarchy && item.hierarchy.children && item.hierarchy.children.length > 0){
item.hierarchy.children = _.map(item.hierarchy.children, function(child){
console.log(count++, child);
return Item.findById(child).exec(function(err, child){
return populateChildren(child);
})
});
}
return item;
}
Run Code Online (Sandbox Code Playgroud)
关于如何填充层次结构的任何想法?
| 归档时间: |
|
| 查看次数: |
980 次 |
| 最近记录: |