Postgres के साथ JSON डेटा क्वेरी करना

NoSQL परिचय

Jake Roach

Data Engineer

Postgres के साथ JSON डेटा क्वेरी करना

दो टेबल: एक में JSON टाइप का सिंगल कॉलम, और दूसरे में क्वेरी से parent_meta कॉलम से निकली जानकारी का परिणाम.

-> ऑपरेटर

  • एक key लेता है, फील्ड को JSON रूप में लौटाता है

->> ऑपरेटर

  • एक key लेता है, फील्ड को टेक्स्ट में लौटाता है

$$

SELECT
    parent_meta -> 'guardian' AS guardian
    parent_meta ->> 'status' AS status
FROM student;
NoSQL परिचय

नेस्टेड JSON ऑब्जेक्ट क्वेरी करना

दो टेबल: एक में JSON टाइप का सिंगल कॉलम, और दूसरे में क्वेरी से parent_meta कॉलम से निकली जानकारी का परिणाम.

नेस्टेड JSON ऑब्जेक्ट क्वेरी करने के लिए:

  • -> और ->> साथ उपयोग करें
  • पहले nested ऑब्जेक्ट लौटाएँ
  • फिर फील्ड निकालें

$$

SELECT
    parent_meta -> 'jobs' ->> 'P1' AS jobs_P1,
    parent_meta -> 'jobs' ->> 'P2' AS jobs_P2
FROM student;
NoSQL परिचय

JSON arrays क्वेरी करना

दो टेबल: एक में JSON टाइप का सिंगल कॉलम, और दूसरे में क्वेरी से parent_meta कॉलम से निकली जानकारी का परिणाम.

JSON array के तत्व एक्सेस करना:

  • -> को INT दें, फील्ड JSON रूप में मिलेगा
  • ->> को INT दें, फील्ड टेक्स्ट में मिलेगा

$$

SELECT
    parent_meta -> 'educations' ->> 0
    parent_meta -> 'educations' ->> 1
FROM student;
NoSQL परिचय

JSON ऑब्जेक्ट में स्टोर डेटा का टाइप खोजना

दो टेबल: एक में JSON टाइप का सिंगल कॉलम, और दूसरे में आउटपुट JSON ऑब्जेक्ट के टाइप वाला सिंगल कॉलम.

json_typeof फंक्शन

  • सबसे बाहरी ऑब्जेक्ट का टाइप लौटाता है
  • -> के साथ उपयोग करें
  • डिबगिंग और क्वेरी बनाने में उपयोगी
  • आमतौर पर ->> के साथ उपयोग नहीं होता

$$

SELECT
    json_typeof(parent_meta -> 'jobs')
FROM students;
NoSQL परिचय

रीव्यू

SELECT
    -- टॉप-लेवल फील्ड्स
    <column-name> -> '<field-name>' AS <alias>,
    <column-name> ->> '<field-name>' AS <alias>,

    -- नेस्टेड फील्ड्स
    <column-name> -> '<parent-field-name>' ->> '<nested-field-name>' AS <alias>,

    -- arrays
    <column-name> -> '<parent-field-name>' -> 0 AS <alias>,
    <column-name> -> '<parent-field-name>' ->> 1 AS <alias>,

    -- टाइप
    json_typeof(<column-name> -> <field-name>) AS <alias>
FROM <table-name>;
NoSQL परिचय

अभ्यास करते हैं!

NoSQL परिचय

Preparing Video For Download...