【问题标题】:How can to implement recursion for loopback self relations?如何实现环回自我关系的递归?
【发布时间】:2019-09-15 12:49:04
【问题描述】:

我的模型中有一个自我关系。如何使用自连接环回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 级。谢谢

【问题讨论】:

    标签: node.js mysql-workbench loopbackjs strongloop loopback


    【解决方案1】:

    您的查询和数据的最大深度在datasources.json 中设置,详情请参阅docs,因此您希望这是您的最大 N

    {
      "db": {
        "name": "db",
        "connector": "memory",
        "maxDepthOfQuery": 5,
        "maxDepthOfData": 16
      }
    }
    

    我现在无法对此进行测试,但这看起来像是一个工作/几乎工作的 sn-p

    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));

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      相关资源
      最近更新 更多