Sequelize 支持标准关联关系: 一对一, 一对多 和 多对多.
官方提供了四种关联类型,并将它们组合起来以创建关联:
HasOne
BelongsTo
HasMany
BelongsToMany
这里举例说明最简单的HasOne
和BelongsTo
const User = sequelize.define('user', {
userName: {
type: DataTypes.STRING,
allowNull: false
},
age: {
type: DataTypes.INTEGER
}
});
const Info = sequelize.define('info', {
userName: {
type: DataTypes.STRING,
allowNull: false
},
num: {
type: DataTypes.INTEGER
}
});
//将两个表一对一关联起来,两种方法。
//方法一
Info.belongsTo(User, { foreignKey: 'userName'})//这样写info是主体,要从info中查询。info.findAndCountAll
//方法二
User.hasOne(Info, { foreignKey: 'userName'})//这样写User是主体,要从USER中查询。User.findAndCountAll
调用方法关联查询
//用户关联表查询
getUserAndInfo:async(ctx)=>{
//这是用的方法二
const infoUser = await User.findAndCountAll({
include: [{
model: Info
}],
})
ctx.body = {code:'200',userList:infoUser};
return ctx.body
}
这里只是最简单的实现功能,更详细的还是看文档吧。