Sequelize include return 数据格式
Sequelize include return data format
我有一个模型 User
和 table userRole
因为模型 UserRole
有一个来自 User
的外键 userId
table.
我已使用此查询获取一个用户的 useRole 详细信息:
const userFound = await User.findAll({
where: { userId },
attributes: { exclude: ["password"] },
include: {
model: UserRole,
as: "userRole",
require: true,
},
})
return值为:
[
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": {
"userId": 36,
"userRoleId": 3
}
},
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": {
"userId": 36,
"userRoleId": 5
}
}
]
如何使 userRole return 成为一个嵌套数组,例如:
[
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": [
{
"userId": 36,
"userRoleId": 3
},
{
"userId": 36,
"userRoleId": 5
},
]
}
]
更新:
我设置的关系是:
User.belongsTo(UserRole, { targetKey: "userId", foreignKey: "userId", as: "userRoles" })
UserRole.hasMany(User, { sourceKey: "userId", foreignKey: "userId", as: "users" })
查询前需要添加User和UserRole的关联
UserRole.belongsTo(User, { as: 'user', foreignKey: 'userId', targetKey: 'userId' }); User.hasMany(UserRole, { as: 'userRole', foreignKey: 'userId', sourceKey: 'userId' });
https://sequelize.org/master/manual/assocs.html#one-to-many-relationships
我想你有这样的联想:
User.hasOne(UserRole, { foreignKey: 'userId', as: 'userRole' });
您应该将其替换为(因为一个用户有多个角色):
User.hasMany(UserRole, { foreignKey: 'userId', as: 'userRole' });
我有一个模型 User
和 table userRole
因为模型 UserRole
有一个来自 User
的外键 userId
table.
我已使用此查询获取一个用户的 useRole 详细信息:
const userFound = await User.findAll({
where: { userId },
attributes: { exclude: ["password"] },
include: {
model: UserRole,
as: "userRole",
require: true,
},
})
return值为:
[
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": {
"userId": 36,
"userRoleId": 3
}
},
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": {
"userId": 36,
"userRoleId": 5
}
}
]
如何使 userRole return 成为一个嵌套数组,例如:
[
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": [
{
"userId": 36,
"userRoleId": 3
},
{
"userId": 36,
"userRoleId": 5
},
]
}
]
更新: 我设置的关系是:
User.belongsTo(UserRole, { targetKey: "userId", foreignKey: "userId", as: "userRoles" })
UserRole.hasMany(User, { sourceKey: "userId", foreignKey: "userId", as: "users" })
查询前需要添加User和UserRole的关联
UserRole.belongsTo(User, { as: 'user', foreignKey: 'userId', targetKey: 'userId' }); User.hasMany(UserRole, { as: 'userRole', foreignKey: 'userId', sourceKey: 'userId' });
https://sequelize.org/master/manual/assocs.html#one-to-many-relationships
我想你有这样的联想:
User.hasOne(UserRole, { foreignKey: 'userId', as: 'userRole' });
您应该将其替换为(因为一个用户有多个角色):
User.hasMany(UserRole, { foreignKey: 'userId', as: 'userRole' });