sql >> Databáze >  >> RDS >> PostgreSQL

Postgres operátory pro datový typ JSON pomocí Rails 4

Tato odpověď vyžaduje Postgres 9.4Ve vaší vzorové datové struktuře máte následující:

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

Bohužel kontrola existence prvku v poli funguje (pokud je mi známo) pouze s hodnotami řetězců. Pokud bychom měli následující data, mohli bychom je bez problémů dotazovat.

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

Pojďme to otestovat. Poznámka:užitečné zatížení je jsonb. Nebude fungovat 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">

Chcete-li se dozvědět více, můžete se podívat na tento článek




  1. Import vícehodnotového pole do Solr z mySQL pomocí Solr Data Import Handler

  2. Jak používat nástroj pro export datové pumpy Oracle k vytvoření souboru výpisu v místním počítači?

  3. Použití DBCC CLONEDATABASE a Query Store pro testování

  4. Použijte konzolu MySQL prostřednictvím skriptu PowerShell