PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Operatory Postgres dla typu danych JSON przy użyciu Rails 4

Ta odpowiedź wymaga Postgresa 9.4W przykładowej strukturze danych masz następujące elementy:

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

Niestety sprawdzanie istnienia elementu w tablicy działa tylko (o ile mi wiadomo) z wartościami łańcuchowymi. Gdybyśmy mieli następujące dane, moglibyśmy zapytać o nie bez problemu.

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

Przetestujmy to. Uwaga:ładunek to jsonb. Nie będzie działać jako pole json.

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

Aby dowiedzieć się więcej, przeczytaj ten artykuł




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalizacja zapytania dotyczącego podobieństwa postgres (pg_trgm + indeks gin)

  2. Postgresql - czy istnieje sposób na wyłączenie wyświetlania instrukcji INSERT podczas wczytywania z pliku?

  3. Jak podzielić dane z jednej kolumny na trzy kolumny w innej tabeli? SQL

  4. Procedura składowana Postgresql zwraca wybór zestawu wyników

  5. Agregaty PostgreSQL z wieloma parametrami