Sequelize update with association Sequelize update with association javascript javascript

Sequelize update with association


First you have to find model including sub model which you want to update.then you can get reference of sub model to update easily.i am posting an example for your reference. hope it will help.

var updateProfile = { name: "name here" };var filter = {  where: {    id: parseInt(req.body.id)  },  include: [    { model: Profile }  ]};Product.findOne(filter).then(function (product) {  if (product) {    return product.Profile.updateAttributes(updateProfile).then(function (result) {      return result;    });  } else {    throw new Error("no such product type id exist to update");  }});


If you want to update both models(Product & Profile) at once. One of the approaches can be:

// this is an example of object that can be used for updatelet productToUpdate = {    amount: 'new product amount'    Profile: {        name: 'new profile name'    }};Product    .findById(productId)    .then((product) => {        if(!product) {            throw new Error(`Product with id ${productId} not found`);        }        product.Profile.set(productToUpdate.Profile, null);        delete productToUpdate.Profile; // We have to delete this object to not reassign values        product.set(productToUpdate);        return sequelize            .transaction((t) => {                return product                    .save({transaction: t})                    .then((updatedProduct) => updatedProduct.Profile.save());            })    })    .then(() => console.log(`Product & Profile updated!`))


await Job.update(req.body, {        where: {          id: jobid        }      }).then(async function () {        await Job.findByPk(jobid).then(async function (job) {          await Position.findOrCreate({ where: { jobinput: req.body.jobinput } }).then(position => {            job.setPositions(position.id)          })})

Here positon belongsToMany job