【发布时间】:2020-10-27 07:46:10
【问题描述】:
我有一个模型User 和表userRole 作为模型UserRole 有一个来自User 表的外键userId。
我已使用此查询来获取一个用户的 userRole 详细信息:
const userFound = await User.findAll({
where: { userId },
attributes: { exclude: ["password"] },
include: {
model: UserRole,
as: "userRole",
require: true,
},
})
返回值为:
[
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": {
"userId": 36,
"userRoleId": 3
}
},
{
"userId": 36,
"firstName": "a",
"lastName": "b",
"userRole": {
"userId": 36,
"userRoleId": 5
}
}
]
如何使 userRole 返回为一个嵌套数组,例如:
[
{
"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" })
【问题讨论】:
标签: node.js express sequelize.js