SQL vs Sequelize:使用where比较json列

时间:2016-10-13 16:32:07

标签: javascript sql sequelize.js

我试图重现这个SQL语句:

WHERE ("document"."data"#>>'{dtPrevista}' > "document"."data"#>>'{dtConclusao}')

不幸的是我不能'弄清楚我该如何做正确的部分:

document"."data"#>>'{dtConclusao}'

以下是我要做的事情:

options.where = {
    "data":
    {
        "dtPrevista":
        {
            $gt: {"dtConclusao"}
        }
    }
}

这是我尝试的结果:

WHERE ("document"."data"#>>'{dtPrevista}') > 'dtConclusao')

另外,我已尝试过以下一个

options.where = {
    "data":
    {
        "dtPrevista":
        {
            $gt: {"data": {$col: "dtConclusao"}}
        }
    }
}

但是这个给了我一个关于http get的错误(似乎它不是正确的语法)。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,sequelize只支持从POJO生成where条件的左侧 - 你必须自己写右侧

return Document.findAll({
  where: {
    data: {
      dtPrevista:{
        $gt: sequelize.literal(`"document"."data"#>>'{dtConclusao}'`)
      }
    }
  }
});