Sequelize查询Or-ing where和include语句

时间:2018-04-15 02:25:03

标签: javascript sql sequelize.js

我正在尝试制作一个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。这可能吗?我是否使用了必需的假?

1 个答案:

答案 0 :(得分:3)

试试这个:

{
where: {
  $or: [
    {
      userName: {
        $ilike: "%s%"
      }
    },
    {
      '$person.firstName$': {
        $ilike: "%s%"
      }
    },
    {
      '$person.lastName$': {
        $ilike: "%s%"
      }
    }
  ]
},
include: [
  {
    model: Person,
  }
]
}