在Rails中,我可以做.where(:attr => [val1, val2, val3])
,我將找回匹配這些val1-3
中的任何一行的所有行。Postgresql jsonb(Rails) - 通過數組在單個json屬性中查詢多個值
我正在使用Postgres/Postgresql,並有一個jsonb類型,我想做類似的事情。 PsuedoCode:.where("col @> ?", {attr: [val1, val2, val3]}.to_json)
,但這不會返回任何 - bc它試圖找到整個數組的值[val1, val2, val3 ]
不是每個單獨的值:val1
,val2
,val3
?
有沒有什麼辦法可以在jsonb查詢中傳遞多個值,相對於單個屬性?
我可以做.where("attr @> {.. val1 ...} OR attr @> {... val2 ..} ...")
,但它似乎會有更好的方法。
我試過https://www.postgresql.org/docs/9.4/static/functions-json.html的各種東西,但似乎有一個解決方案逃避我。
甜!我今天會測試它並回復你! – Taysky
很棒!謝謝! 'Model.where(「model_attributes @> any(array [?] :: jsonb [])」,[{attr:1},{attr:2}]。map(&:to_json))'!! – Taysky