sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres-operatörer för JSON-datatyp med Rails 4

Detta svar kräver Postgres 9.4I din exempeldatastruktur har du följande:

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

Tyvärr fungerar det bara (såvitt jag vet) att kontrollera om det finns ett element i en array med strängvärden. Om vi ​​hade följande data skulle vi kunna fråga utan problem.

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

Låt oss testa detta. Obs:nyttolasten är jsonb. Det kommer inte att fungera som ett json-fält.

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">

Om du vill veta mer kan du kolla in den här artikeln




  1. Hur man exporterar databasschema i Oracle till en dumpfil

  2. Hur kan jag importera en databas med MySQL från terminal?

  3. Kolumnsammansättning returnerar Null Mysql - Php

  4. Hantera MySQL med phpMyAdmin på Ubuntu 9.10 (Karmic)