在sequelize.js中获得与belongsToMany的关联
我有一个用户和设备模型之间的多对多关系,通过UserDevice连接表:
device.belongsToMany(user, { through: { model: userDevice }, foreignKey: "deviceId", as: "customers" }); user.belongsToMany(device, { through: { model: userDevice }, foreignKey: "customerId", as: "devices" }); setCustomers: Sequelize.BelongsToManySetAssociationsMixin<UserInstance, string, UserDeviceAttribute>; getCustomers: Sequelize.BelongsToManyGetAssociationsMixin<UserInstance>;
我可以通过以下方式正确find设备并填充客户:
this.db.models.Device.findAll({ include: [{ model: User, as: "customers" }]
我不知道如何在其他情况下填充客户,即当我手动设置客户时。 现在我正在尝试类似于:
return device.setCustomers(customers) .then(() => { return device.getCustomers(); }) .then((users) => { device.setAttributes("customers", users); return device; });
但它不工作,setAttributes不设置客户字段。