我有两个表(用户,标签)通过连接实体(user_tag)以belongsToMany关系相互连接:
sequelize.define('tag', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
type: {
type: DataTypes.STRING
}
}, {
classMethods: {
associate: function (models) {
this.belongsToMany(models.user, {as: "users", through: models.user_tag });
},
}
}
sequelize.define('user', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: DataTypes.STRING,
},{
classMethods: {
associate: function (models) {
this.belongsToMany(models.tag, { as:"tags", through: models.user_tags });
}
}
}
sequelize.define('user_tag', {
type: DataTypes.STRING,
param1: DataTypes.INTEGER,
priority: DataTypes.INTEGER
}, {
freezeTableName: true,
paranoid: true
});
现在,用户可以更新他的所有标签,包括加入实体(user_tag)的所有特定信息,例如priority和param1。
我知道setAssociation [例如user.setTag(myTags)],但是,如何设置匹配的param1和优先级属性?
答案 0 :(得分:0)
根据Sequelize's documentation添加与belongsToMany
的新关系时,您可以将其他属性传递给选项对象,并将该数据添加到直通模型中。
user.setTag(myTags, { param1: 1, priority: 1 });