node.js - 通过多对多关系表检索 Sequelize 行

标签 node.js sequelize.js

我有两个模型 CompanyContractor 通过 CompanyContractor 关系表链接。

company.js

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Company = sequelize.define('Company', {
    name: {
      type: DataTypes.STRING(30),
      allowNull: false,
      unique: true
    },
    slug: {
      type: DataTypes.STRING(30),
      allowNull: false
    },
    description: DataTypes.STRING(200),
  }, {});

  Company.associate = function(models) {
    Company.belongsToMany(models.Contractor, { through: 'CompanyContractor', as: 'contractors',foreignKey: 'companyId' });
  };

  return Company;
};

contractor.js

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Contractor = sequelize.define('Contractor', {
    name: {
      type: DataTypes.STRING(50),
      allowNull: false
    }
  }, {});
  Contractor.associate = function(models) {
    Contractor.belongsToMany(models.Company, { through: 'CompanyContractor', as: 'contractors' });
  };
  return Contractor;
};

companyContractor.js

'use strict';
module.exports = (sequelize, DataTypes) => {
  const CompanyContractor = sequelize.define('CompanyContractor', {
    companyId: {
      type: DataTypes.INTEGER,
      allowNull: false
    },
    contractorId: {
      type: DataTypes.INTEGER,
      allowNull: false
    }
  }, {
    timestamps: false
  });

  return CompanyContractor;
};

有没有办法通过companyIdContractor.findAll()

最佳答案

Contractor.findAll({
include: [{
   model: Company,
   through: {
        attributes: ['companyId']
      }
   }]
});

From the documentation

关于node.js - 通过多对多关系表检索 Sequelize 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54149153/

相关文章:

javascript - 在 sequelize js 中获取关系的值(value)

javascript - findByPrimary 不是函数

node.js - Node js中基于关系的ACL

node.js - 第一个参数必须是字符串类型或者 Buffer、ArrayBuffer、Array 或类数组对象的实例。收到未定义

javascript - NodeJS 中的对象扩展

javascript - NodeJS CRUD api 删除方法出现问题

javascript - 与 express Sequelize

javascript - 谷歌应用引擎 CORS “Error parsing ./app.yaml: Unknown url handler type”

javascript - 在多个字段之间使用 ILIKE 子句进行序列化查询

sqlite - Sequelize - 插入到 sqlite 数据库时限制属性