我想做点什么,比如我在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
应该起作用的内容,但这种情况并非如此。是否可以在查询中使用正则表达式?
答案 0 :(得分:3)
请改为尝试:
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
})