我看不到如何更新具有多個 id 的聯結表。所以我想更新一個聯結表,以便那些缺少 id 的行離開,并創建新的行。
這是我的設定
ActorFilm.belongsTo(models.Actor, { foreignKey: 'actorId', targetKey: 'id' });
ActorFilm.belongsTo(models.Film, { foreignKey: 'filmId', targetKey: 'id' });
Actor.belongsToMany(models.Film, { through: models.ActorFilm, foreignKey: 'actorId' });
Film.belongsToMany(models.Actor, { through: models.ActorFilm, foreignKey: 'filmId' });
這就是我添加新演員的方式:
const actor= await Actor.create({
userId: userId,
title: title,
description: description
});
if (filmIds && filmIds.length) {
await actor.setFilms(filmIds );
const actorWithFilms = Actor.findByPk(actor.id, { include: Film });
return actorWithFilms ;
}
return actor;
我想像這樣更新Actor:
const editedActor = await Actor.update({
title: title,
description: description,
}, {
where: {
id: actorId
},
returning: true,
});
return editedActor;
我需要在哪里放置新的 ids 陣列,以便那些丟失的離開,并在聯結表中創建新的。還是我應該先自己洗掉不必要的,檢查已經存在的并添加新的?
uj5u.com熱心網友回復:
只需使用
await actor.setFilms(filmIds );
它洗掉舊的鏈接記錄并添加新的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406241.html
標籤:
