我的模特中有自我关系。如何使用环回到N级的自联接实现父子层次结构的递归?
下面给出的代码只会给我们递归到某个级别,但我想为N-LEVELS实现它?
Menu.nest = function(callback) {
Menu.find({
"include":{
"relation":"menus",
"scope":{
"include":{
"relation":"menus"
}
}
}
}, function(err, results) {
if(err) return callback(err);
callback(err, results);
});
}
这将恢复到有限的级别
我想实现递归以实现最多N级。谢谢
您的最大查询和数据深度在datasources.json
中设置,请参阅docs了解详情,因此您希望这是您的最大N
{
"db": {
"name": "db",
"connector": "memory",
"maxDepthOfQuery": 5,
"maxDepthOfData": 16
}
}
我现在无法测试它,但这看起来像一个工作/几乎工作的片段
const o = {};
const assignFunc = (o) => {
while(o.include) {
o = o.include.scope;
}
o.include = {
relation: "menus",
scope:{}
};
return o;
}
function rec(o, n) {
if (n == 0) {
return o;
}
assignFunc(o);
return rec(o, n - 1);
};
console.log(rec({}, 10));