Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use iLike operator with Sequelize to make case insensitive queries

I am using Sequelize along with PostgreSQL in managing my database.
I would like to perform a case insensitive search query. When I googled it up, some people said that I can use "iLike" operator to do so. I tried to implement this way:

var getRadiosByGenre = function(Radio,Genre,genreName){
    Genre.findOne({where:{name: { $iLike: genreName}}})}

where genreName is a string. But, I keep getting this error:

Error: Invalid value { '$iLike': 'art' }

Does anyone know the correct way of using iLike with sequelize? Thanks mates(s). :)

like image 737
AG_HIHI Avatar asked Jul 20 '18 15:07

AG_HIHI


1 Answers

You should use Sequelize.Op :

var getRadiosByGenre = function(Radio,Genre,genreName) {
  Genre.findOne({
    where: {
      name: {
        [Sequelize.Op.iLike]: genreName
      }
    }
  });
}

Don't forget to add % before or after your genreName if you want to make a partial query.

See the docs here >

like image 106
PhilippeAuriach Avatar answered Sep 30 '22 20:09

PhilippeAuriach