sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres-operatører til JSON-datatype ved hjælp af Rails 4

Dette svar kræver Postgres 9.4I din eksempeldatastruktur har du følgende:

2.1.1 :202 > r.column_data
=> {"data1"=>[1, 2, 3], "data2"=>"data2-3", "array"=>[{"hello"=>1}, {"hi"=>2}]}

Desværre virker tjek for eksistensen af ​​et element i et array kun (såvidt jeg ved) med strengværdier. Hvis vi havde følgende data, kunne vi forespørge på dem uden problemer.

{"data1"=>['1', '2', '3'], "data2"=>"data2-3"}

Lad os teste det her. Bemærk:nyttelast er jsonb. Det vil ikke fungere som et json-felt.

Dynamic.create(payload: {"data1"=>['1', '2', '3'], "data2"=>"data2-3"})
Dynamic.where("payload -> 'data1' ? '1'").first
=> #<Dynamic id: 8, payload: {"data1"=>["1", "2", "3"], "data2"=>"data2-3"}, created_at: "2014-12-24 02:30:31", updated_at: "2014-12-24 02:30:31">

For at finde ud af mere kan du tjekke denne artikel




  1. Få sidste rekord fra hver måned

  2. java.sql.SQLEundtagelse:- ORA-01000:maksimale åbne markører overskredet

  3. sqoop eksport lokal csv til MySQL fejl på mapreduce

  4. Java-datoformatkonvertering