I am trying to execute a query in sequelize, in which the where conditions have to be added based on the request parameters
router.get("/getsearchdata",(req, res) => { var searchquery =[ {model:ProvidersCategories,attributes:["category_id"], include: [ {model:Categories,attributes:["category_id","category_name"]}, ] } ] if(req.query.agency && req.query.agency!=''){ searchquery.where = { $and: [ {agencyName: {$like: '%' + req.query.agency + '%'}}, ] } } Providers.findAll({ include:searchquery }).then(providerData =>{ if(!providerData) { res.status(404).send({reason:'no data found'}); } else { res.status(200).send(providerData); } }); }); I have three tables "providers", "categories" and "provider_Categories". I am trying to join the three tables and get the providers. In the request i.e req, if there is an input req.query.agency != '' then an if condition has to added where agencyName like "% + req.query.agency + %", if input req.query.agency == '' then there should be no if condition. For which I have tried the above code. But the where condition is not getting concatenated to the main query even if there is input req.query.agency
What is the right way to write where conditionally