Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sequalize js中的自引用外键_Javascript_Mysql_Sequelize.js - Fatal编程技术网

Javascript Sequalize js中的自引用外键

Javascript Sequalize js中的自引用外键,javascript,mysql,sequelize.js,Javascript,Mysql,Sequelize.js,我有一个模型 员工(身份证、名、姓、经理id) 这里的manager\u id是一个自引用外键,它引用同一个表的id列。 如何在sequelize中实现这样的用例 我试过这个,但这个不起作用 employee.belongsTo(models.employee, { foreignKey: 'manager_id' }), 您可以定义关联,如: employee.belongsTo(employee, {as: "Manager"}); employee.hasMa

我有一个模型 员工
(身份证、名、姓、经理id)

这里的
manager\u id
是一个自引用外键,它引用同一个表的
id
列。 如何在sequelize中实现这样的用例

我试过这个,但这个不起作用

employee.belongsTo(models.employee, {
        foreignKey: 'manager_id'
      }),

您可以定义关联,如:

employee.belongsTo(employee, {as: "Manager"});
employee.hasMany(employee, { as: "Employee", foreignKey: "manager_id", useJunctionTable: false });
然后像这样使用它

employee.findAll({
    include : {
        model : employee ,
        as : 'Manager'
    }
})

您可以使用

var employee = sequelize.define('employee', {
    name: Sequelize.STRING,
    manager_id: {
        type: Sequelize.INTEGER,
        hierarchy: true
    }
});

employee.findAll({ hierarchy: true }).then(function(results) {
    // results = [
    //  { id: 1, manager_id: null, name: 'a', children: [
    //      { id: 2, manager_id: 1, name: 'ab', children: [
    //          { id: 3, manager_id: 2, name: 'abc' }
    //      ] }
    //  ] }
    // ]
});

谢谢。Sequalize guru.=)