【问题标题】:Sequelize where on many-to-many join续集多对多连接的位置
【发布时间】:2016-05-13 01:22:23
【问题描述】:

我希望有人可以帮助我。我正在为 express.js 使用 Sequelize ORM,并且我在 2 个表之间有一个有效的多对多关系。

为了简化我的查询,假设我的表是用户、书籍和用户书籍,其中用户书籍具有用户 ID、书籍 ID 和一个附加列(假设它的 NoOfTimesRead)。

我想做的是这样的:

user.getBooks({
  where: {
    "userBooks.NoOfTimesRead": 0
  }
});

如果我输入:

user.getBooks();

这有效并返回所有书籍,我只是无法弄清楚如何通过连接表上的附加列来查询它。

我希望这是有道理的,

感谢观看!

【问题讨论】:

    标签: javascript postgresql express orm sequelize.js


    【解决方案1】:

    使用 Belongs-To-Many,您可以基于直通关系和 选择特定属性。例如使用 findAll 和 through

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

    基本上您可以使用through 选项和include 您链接的关系。更多可以找到here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-13
      • 2019-05-20
      • 1970-01-01
      • 2017-08-02
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多