2016-10-13 2 views
1

Ich versuche, diese SQL-Anweisung zu reproduzieren:SQL vs Sequelize: Vergleichen json Spalten mit den

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

leider Ich kann nicht‘herausfinden, wie kann ich den rechten Teil tun:

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

hier ist, was ich versuche zu tun:

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

Und das ist das Ergebnis meines Versuchs:

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

Auch habe ich versucht, das folgende

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

Aber dieser ist mir ein Fehler auf http get (scheint, dass es nicht die korrekte Syntax ist). Kann mir jemand helfen?

Antwort

1

Leider sequelize unterstützt nur die linke Seite des in dem Zustand von einem POJO zu erzeugen - Sie die rechte Seite zu schreiben, haben sich

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

Vielen Dank für Ihre Klarstellung, dass für mich arbeiten sollte ... leider ich Ich bekomme Probleme mit anderen Teil der Abfrage ... Wenn Sie mir helfen könnten, würde ich das zu schätzen wissen! http://stackoverflow.com/questions/40071075/use-sequelize-fn-on-both-sides-column-name-and-column-value Folgen Sie, was Sie sagten, scheint nicht möglich, es zu tun, aber Wenn es einen Workaround gibt, werde ich mich freuen. – digulino

Verwandte Themen