我最近从C#堆栈切换到了全堆栈javascript,并决定对我的项目使用Sequelize。我想编写一个查询,以获取用户以及相关的角色和租户对象。我以官方文档为指导,但是不知何故我缺少了一些东西。
我用作参考的docs: https://sequelize.org/master/manual/querying.html#relations---associations
检索用户的代码:
let user = await User.findOne({
where: { email },
[
include: {
model: Tenant,
where: { id: Sequelize.col('user.tenantId') }
},
include: {
model: Role,
where: { id: Sequelize.col('user.roleId') }
},
]
});
非常感谢您的帮助,干杯!
答案 0 :(得分:1)
如果您已在sequlize中定义了关联,则include中不需要条件,并且如何包含模型可能存在语法问题,请查看以下查询:
User.findOne({
where: { email },
include: [
{
model: Tenant,
// where: { id: Sequelize.col('user.tenantId') } // <--- REMOVE
},
{
model: Role,
// where: { id: Sequelize.col('user.roleId') } // <--- REMOVE
}
]
});