Home > front end >  How to update a record and update include many records relationship by foreignKey in sequelize use d
How to update a record and update include many records relationship by foreignKey in sequelize use d

Time:01-17

I create an API that updates a record associated with a foreign key

  1. if I just put a value to items so I want it to return remove other values that I don't put

  2. if I edit some value in items so I want it to return the value that I edited

  3. if I put value over value of items so I want it to return the old value of items and the value that I put over

example: const record = {id:1,name:"abc",items:[{id:1,name:"abc",recordId:1},{id:2,name:"abcd",recordId:1}]}
const update = await dbRecord.update({id,name},{where: {id: req.params.id},include:[model:'items',id:[1,2]});

CodePudding user response:

You can use Sequelize mixins. Sequelize has special methods that uses the prefix get add set concatenated with the model name.

CodePudding user response:

const update = await dbRecord.update({id,name},{where: {id: req.params.id}});
//array get from body 
ex: array = [{id:1,name:"abc",recordId:1},{id:2,name:"abcd",recordId:1}]
const itemId = array.map((arr) => arr.id);
// result = [1,2]

  await dbItems.bulkCreate(array, {
    updateOnDuplicate: ['name'],
  });

  for (var i = 0; i < update.items.length; i  ) {
    const item = update.items[i];
    if (!itemId.includes(container.id)) {
      await container.destroy();
    }
  }


so it create update delete in once time.
  • Related