sequelize 有很多关联更新
sequelize has many associations update
我正在使用节点 js 和 sequelize (mysql) 构建 resful api。
我有两个模型(事件)有很多(用户)。
为了使用模型创建事件,我正在这样做:
add(req, res) {
return event.create(
{
name: req.body.name,
users: req.body.users,
},
{
include: [
{
model: User,
as: "users",
},
],
}
)
一切正常。
但是当我想更新时我遇到了大问题。
例如我当前的事件看起来像:
"events" : [
{
"id" : 1 ,
"name" :"name"
"users" :[
{
"id" :1 ,
"name" :"name1",
},
{
"id" :2 ,
"name" :"name2",
}
]
}]
我想达到的目标:
我想更新用户:
如果请求中存在用户 ID,我想更新用户,但如果请求中不存在用户 ID,我想删除用户。
我如何在 sequelize 和 node js 中做到这一点。我在这里堆叠。
向您的路由器显示您尝试处理该逻辑的位置。
当您说用户存在时,您是指用户完全存在还是仅属于所请求的事件,请更具体!!!
// lets say you want to update users of event id=1
const event = await Event.findByPk(1)
// you can get users belonging to event by association mixins
const users = await event.getUsers()
// loop through users to update them
for (let i=0; i < users.length; i++) {
// put your logic to make changes to users
if (users[i].getDataValue('id') == 1) {
await event.removeUser(users[i])
}
}
我正在使用节点 js 和 sequelize (mysql) 构建 resful api。
我有两个模型(事件)有很多(用户)。
为了使用模型创建事件,我正在这样做:
add(req, res) {
return event.create(
{
name: req.body.name,
users: req.body.users,
},
{
include: [
{
model: User,
as: "users",
},
],
}
)
一切正常。
但是当我想更新时我遇到了大问题。 例如我当前的事件看起来像:
"events" : [
{
"id" : 1 ,
"name" :"name"
"users" :[
{
"id" :1 ,
"name" :"name1",
},
{
"id" :2 ,
"name" :"name2",
}
]
}]
我想达到的目标: 我想更新用户: 如果请求中存在用户 ID,我想更新用户,但如果请求中不存在用户 ID,我想删除用户。
我如何在 sequelize 和 node js 中做到这一点。我在这里堆叠。
向您的路由器显示您尝试处理该逻辑的位置。 当您说用户存在时,您是指用户完全存在还是仅属于所请求的事件,请更具体!!!
// lets say you want to update users of event id=1
const event = await Event.findByPk(1)
// you can get users belonging to event by association mixins
const users = await event.getUsers()
// loop through users to update them
for (let i=0; i < users.length; i++) {
// put your logic to make changes to users
if (users[i].getDataValue('id') == 1) {
await event.removeUser(users[i])
}
}