【问题标题】:Is it possible in sequelize to query based on an association?sequelize 是否可以基于关联进行查询?
【发布时间】:2016-08-10 13:47:00
【问题描述】:

我建模了一个数据结构,其中“房间”和“用户”之间存在 n:m 关系。

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

我有用户名和 roomid。

我怎样才能在 one 查询中完成这一点。 基本上我的问题是可以在查询中做类似的事情:

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

这里的 users 是我的用户的“关联”。

【问题讨论】:

  • 它是如何声明你的模型关联的?

标签: javascript node.js sequelize.js


【解决方案1】:

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

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

这在Sequelize documentation 的 n:m 查询部分中有描述:

使用 Belongs-To-Many,您可以根据 through 关系和 选择特定属性。例如将 findAll 与 through

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

【讨论】:

    猜你喜欢
    • 2013-09-21
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多