Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 使用Sequelize连接到多个连接表大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含三个主表的数据库:由两个连接表,users_teams和teams_folders连接的用户,团队和文件夹。用户和团队以及团队和文件夹之间存在多对多关系(用户可以在多个团队中,团队可以拥有多个文件夹)。

Sequelize在管理用户团队和团队文件夹关系方面做得非常出色,但我无法建立用户文件夹之间的关系。

有没有办法加入两个连接表,而不诉诸原始sql

似乎没有办法完成这个优雅或合理的步骤。我已经尝试过的方法,如user.getFolders(),Folder.findAll({include:[User]})),但Sequelize似乎无法理解三级层次结构。

解决方法

假设有以下关系:

User.belongsToMany(Team,{ through: 'users_teams'});
Team.belongsToMany(User,{ through: 'users_teams'});

Folder.belongsToMany(Team,{ through: 'teams_folders'});
Team.belongsToMany(Folder,{ through: 'teams_folders'});

您应该可以使用嵌套的包含一次性加载所有内容

User.findAll({
  include: [
    {
      model: Team,include: [
        Folder
      ]  
    }
  ]
});

你似乎已经在正确的轨道上,你在你的帖子中给出的例子:)。您唯一需要更改的内容,而不是将用户模型直接传递到include中,您可以传递一个具有model属性和另一个嵌套的include属性的对象

大佬总结

以上是大佬教程为你收集整理的node.js – 使用Sequelize连接到多个连接表全部内容,希望文章能够帮你解决node.js – 使用Sequelize连接到多个连接表所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。