我想做一些事情,例如在猫鼬中可以做的事情:
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
})