使用功能将WHERE AND语法替换为

时间:2019-10-08 07:47:58

标签: javascript typescript sequelize.js sequelize-typescript

我正在使用Sequelize 5.18.0和sequelize-typscript。我需要对and.fn进行where子句,以查找给定日期的DateTime列所在的行。
正确的语法是什么?

  return STTermin.schema(ctx.tenant).findAll({
    where: {
      [Op.or]: [
        {
          [Op.and]: {
            Sequelize.where(Sequelize.fn('DATE', Sequelize.col('von')), '2019-10-17'),
            bis: {
              [Op.is]: null
            }
          }
        },

这给了我以下错误:

enter image description here

1 个答案:

答案 0 :(得分:1)

Op.andOp.or都需要一个参数数组。所以:

 [Op.or] : [
    [Op.and]: [
       Sequelize.where(Sequelize.fn('DATE', Sequelize.col('von')), '2019-10-17'),
       {bis: {[Op.is]: null}}
    ],
    { otherColumn : 123455 }  /* some other condition */
]

FWIW,我发现Operator Aliases可以提高代码的清晰度...