sequelizejs,使用RegEx进行查询

sequelizejs, use RegEx to query

本文关键字:查询 RegEx 使用 sequelizejs      更新时间:2023-09-26

我想做点什么,就像我在Mongoose中做的那样:

Customers.find({
            $or: [
                {firstName: {$in: RegExpArray}},
                {lastName: {$in: RegExpArray}},
                {email: {$in: RegExpArray}}
            ]
        }).limit(50);

我试着:

Customers.findAll({
            where: {
                $or: [
                    {firstName: {$iLike: {$in: RegExpArray}}},
                    {lastName: {$iLike: {$in: RegExpArray}}},
                    {email: {$iLike: {$in: RegExpArray}}}
                ]
            },
            limit: 50});

我还尝试使用$regex而不是$iLike,或传递数组[ '%someString%', '%someString%', '%someString%'...]而不是RegExpArray应该起作用,但这都不起作用。它是任何方式使用查询正则表达式?

试试这个:

let searchFor = [ '%someString%', '%someString%', '%someString%'...]
// basically turning the items into objects with "$iLike" as the key
searchFor = searchFor.map((item) => {
    return {$iLike: item};
});
Customer.findAll({
            where: {
                $or: [
                    {firstName: {$or: searchFor}},
                    {lastName: {$or: searchFor}},
                    {email: {$or: searchFor}}
                ]
            },
            order: [['createdAt', 'DESC']],
            limit: 50
        })