是否可以按顺序基于关联进行查询

Is it possible in sequelize to query based on an association?

本文关键字:关联 查询 于关联 顺序 是否      更新时间:2023-09-26

我建模了一个数据结构,其中"Rooms"answers"Users"之间存在n:m关系。

现在我想删除/销毁一个房间。因此,我想检查正在删除的用户是否在房间中。

我有用户名和房间ID。

我如何在一个查询中实现这一点。基本上,我的问题是是否可以在查询中做这样的事情:

Room.destroy({
   where: {
       //username in users
       users: {$contains: { username: "some username" }}
   }
})

这里的用户是我的用户的"协会"。

考虑到您的用户模型定义为User
这可能会帮助你(或者至少给你一个起点):

Room.destroy({
  include: [{
    model: User,
      through: {
        where: {username: "some username"}
      }
  }]
});

Sequelize文档:中的n:m查询部分对此进行了描述

使用Belongs To Many,您可以通过关系和选择特定的属性。例如,通过使用findAll

User.findAll({
  include: [{
    model: Project,
      through: {
        attributes: ['createdAt', 'startedAt', 'finishedAt']
          where: {completed: true}
      }
  }]
});