为Sequelize中的多对多关系更新联接表(“通过”表)数据

时间:2019-05-31 06:36:25

标签: node.js postgresql sequelize.js

我一直在使用许多关系。让我们以Sequelize文档中提到的示例为例。有模型UserProject。有一个中间表,称为ProjectUser。我已经定义了这样的关系:

Project.belongsToMany(User, {as: 'ProjectUsers', through: ProjectUser});
User.belongsToMany(Project, {as: 'UserProjects', through: ProjectUser});

User中每个Project的穿透表都不同。因此,当我将User添加到Project时,我使用了文档中所述的方法,我加载了所需的User,并在名为{在每个ProjectUser实例中的project_user处,将它们放入数组中并调用User。这样可以正确设置关联,并将必要的数据添加到中间通过表中,即Project.setUsers。问题在于编辑中间数据。

当我尝试查找(project_userProject.findOne并将Projectinclude一起使用时,我得到的正是我所写的。回复的格式如下:

User

这意味着添加方法有效。我无法编辑。如果我使用添加时使用的相似类型的数据结构,但使用{ ... fields in Project... ProjectUsers: [ { ...user data ... project_user: { ...the intermediate data that I want to edit... } }, ..... more users ... ] } 而不是setUsers,则它不起作用(可能是因为它已经与上述{{1} }。除此之外,我在编辑addUsers的响应后尝试Project包含所需的数据,但该数据仍然无法正常工作。我曾尝试搜索google和stackoverflow,但我发现的只是创建关联并在创建关联时添加数据的方法。我找不到有关编辑关联模型数据的任何信息。

是否有一种方法可以批量更新多对多“通过”表中的数据?如果要更新单个模型,可以通过查找并更新该模型实例来完成,但是我需要批量进行。

0 个答案:

没有答案