PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Оператори на Postgres за тип данни JSON с помощта на Rails 4

Този отговор изисква Postgres 9.4 Във вашата примерна структура от данни имате следното:

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

За съжаление, проверката за съществуването на елемент в масив работи (доколкото ми е известно) само с низови стойности. Ако имахме следните данни, бихме могли да поискаме без проблем.

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

Нека тестваме това. Забележка:полезният товар е jsonb. Няма да работи като 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">

За да научите повече, можете да разгледате тази статия




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pandas актуализира sql

  2. PostgreSQL - Как да конвертирате секунди в числово поле в ЧЧ:ММ:СС

  3. Как Cot() работи в PostgreSQL

  4. Рекурсивен SQL оператор (Postgresql) - опростена версия

  5. Създайте уникално ограничение с нулеви колони