PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

पोस्टग्रेज JSON डेटा प्रकार रेल क्वेरी

इस पर ठोकर खाने वाले किसी भी व्यक्ति के लिए। मैं ActiveRecord और Postgres के JSON डेटा प्रकार का उपयोग करके प्रश्नों की एक सूची लेकर आया हूं। इसे और अधिक स्पष्ट करने के लिए इसे बेझिझक संपादित करें।

नीचे उपयोग किए गए JSON ऑपरेटरों के लिए दस्तावेज़ीकरण:https://www.postgresql.org/docs/current/functions-json.html।

# Sort based on the Hstore data:
Post.order("data->'hello' DESC")
=> #<ActiveRecord::Relation [
    #<Post id: 4, data: {"hi"=>"23", "hello"=>"22"}>, 
    #<Post id: 3, data: {"hi"=>"13", "hello"=>"21"}>, 
    #<Post id: 2, data: {"hi"=>"3", "hello"=>"2"}>, 
    #<Post id: 1, data: {"hi"=>"2", "hello"=>"1"}>]> 

# Where inside a JSON object:
Record.where("data ->> 'likelihood' = '0.89'")

# Example json object:
r.column_data
=> {"data1"=>[1, 2, 3], 
    "data2"=>"data2-3", 
    "array"=>[{"hello"=>1}, {"hi"=>2}], 
    "nest"=>{"nest1"=>"yes"}} 

# Nested search:
Record.where("column_data -> 'nest' ->> 'nest1' = 'yes' ")

# Search within array:
Record.where("column_data #>> '{data1,1}' = '2' ")

# Search within a value that's an array:
Record.where("column_data #> '{array,0}' ->> 'hello' = '1' ")
# this only find for one element of the array. 

# All elements:
Record.where("column_data ->> 'array' LIKE '%hello%' ") # bad
Record.where("column_data ->> 'array' LIKE ?", "%hello%") # good


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज:जांचें कि क्या सरणी फ़ील्ड में मान है?

  2. JSON डेटाटाइप में रिकॉर्ड के नेस्टेड सरणी के साथ क्वेरी संयोजन

  3. डेबियन/उबंटू पर एक पोस्टग्रेएसक्यूएल प्रतिकृति सेटअप बनाना

  4. PostgreSQL में "INSERT में लक्ष्य स्तंभों की तुलना में अधिक भाव हैं" को ठीक करें

  5. PostgreSQL में पाठ संपीड़न