我建模了一个数据结构,我在" Rooms"之间有一个n:m的关系。和"用户"。
现在我要删除/销毁一个房间。 因此,我想检查删除用户是否在房间内。
我有用户名和房间。
如何在一个查询中完成此操作。 基本上我的问题是可以在查询中执行类似的操作:
Room.destroy({
where: {
//username in users
users: {$contains: { username: "some username" }}
}
})
这里的用户是"协会"给我的用户。
答案 0 :(得分:2)
考虑到您的用户模型定义为User
,
这可能对你有帮助(或者至少给你一个起点):
Room.destroy({
include: [{
model: User,
through: {
where: {username: "some username"}
}
}]
});
Sequelize documentation中的n:m查询部分对此进行了描述:
使用“属于众多”,您可以根据到关系进行查询 选择特定属性。例如,将findAll与到
一起使用User.findAll({ include: [{ model: Project, through: { attributes: ['createdAt', 'startedAt', 'finishedAt'] where: {completed: true} } }] });