Sequelize - 节点Js - 枚举和整数字段搜索选项

时间:2018-05-24 04:53:32

标签: javascript node.js enums sequelize.js typecasting-operator

在Sequelize中 - ORM Node JS

在使用enum运算符搜索特定元素时使用integerlike字段时出现以下错误:

No operator matches the given name and argument type(s).
You might need to add explicit type casts.

我如何为integerenum字段输入广告?

我在哪里查询job.status中的条件是enum字段

whereCondn = { 
        $or:[
        {
            '$job.jobReferenceId$': {
                $iLike: (search ? search: '')
            }
        },
        {
            '$job.jobTitle$': {
                $iLike: '%'+(search ? search: '')+'%'
            }
        },
        {
            '$job.experienceLevel$': {
                $iLike: '%'+(search ? search: '')+'%'
            }
        },
        {
            '$job.location$': {
                $iLike: '%'+(search ? search: '')+'%'
            }
        },
        {
            '$job.status$': {
                $like:   '%'+(search ? search: '')+'%'
            }
        },
        {
            '$job->hospital.name$':{
                $iLike: '%'+(search ? search: '')+'%'
            }
        },
        {
            '$job->grade.gradeName$':{
                $iLike: '%'+(search ? search: '')+'%'
            }
        },
        {
            '$job->speciality.specialityName$':{
                $iLike: '%'+(search ? search: '')+'%'
            }
        },
        {
            '$job->specialityService.serviceName$':{
                $iLike: '%'+(search ? search: '')+'%'
            }
        }
        ],
        $and :[
        {
            '$job.draft$' : false
        },
        {
            'doctorId' : bodyInput['doctorId']
         }
        ]
    };
}

1 个答案:

答案 0 :(得分:0)

对于像我一样访问此页面的其他人:

你可以这样使用 Sequelize.literal -

...
where: Sequelize.literal(`"job"."status"::TEXT LIKE '%${searchKeyword}%'`)),
...