我一直在使用许多关系。让我们以Sequelize文档中提到的示例为例。有模型User
和Project
。有一个中间表,称为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_user
)Project.findOne
并将Project
与include
一起使用时,我得到的正是我所写的。回复的格式如下:
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,但我发现的只是创建关联并在创建关联时添加数据的方法。我找不到有关编辑关联模型数据的任何信息。
是否有一种方法可以批量更新多对多“通过”表中的数据?如果要更新单个模型,可以通过查找并更新该模型实例来完成,但是我需要批量进行。