我正在尝试制作一个Sequelize查询,该查询只返回与 where子句或包含的内容相匹配的记录。例如,我有一个属于个人模型的用户模型。用户模型有一个名为username的字段,person模型具有名字和姓氏。
示例查询:
{
"where": {
"username": {
"$iLike": "%s%"
}
},
"include": [{
"model": Person,
"where": {
"$or": [{
"firstName": {
"$iLike": "%s%"
}
}, {
"lastName": {
"$iLike": "%s%"
}
}]
}
}]
}
上面的查询匹配具有用户名AND(名字或姓氏)匹配" ilike" ' S&#39 ;.我正在尝试使用用户名OR(名字或姓氏)。
我知道在一个地方工作时如何使用或运营商,但我想在哪里或包含使用Or。这可能吗?我是否使用了必需的假?
答案 0 :(得分:3)
试试这个:
{
where: {
$or: [
{
userName: {
$ilike: "%s%"
}
},
{
'$person.firstName$': {
$ilike: "%s%"
}
},
{
'$person.lastName$': {
$ilike: "%s%"
}
}
]
},
include: [
{
model: Person,
}
]
}