मेरे पास नोट मॉडल पर डेटा का निम्न सेट है। वर्तमान में, मैं डेटाबेस के लिए Postgres का उपयोग कर रहा हूँ। नीचे Notes
टेबल पर दो अलग-अलग रिकॉर्ड हैं।
id: 1,
name: 'First Note',
items: [{description: 'First Note'}, {description: 'PM1 Second Note'}]
id: 2,
name: 'Second Note',
items: [{description: 'Second Note'}, {description: 'PM2 Second Note'}]
id: 3,
name: 'Third Note',
items: [{description: 'Third Note'}, {description: 'Invalid Second Note'}]
मैं json
फ़ील्ड (आइटम) को कैसे क्वेरी करूं ताकि मुझे विवरण फ़ील्ड पर PM
मान के साथ सभी नोट मिलें यानी क्वेरी को उपरोक्त उदाहरण से आईडी 1 और 2 के साथ नोट्स वापस करना चाहिए?
0
Code father
15 सितंबर 2020, 04:54
2 जवाब
सबसे बढ़िया उत्तर
कच्चे एसक्यूएल के साथ आप नीचे के साथ हासिल कर सकते हैं:
select * from notes,
json_array_elements(items) element
where element->>'description' LIKE '%PM%';
सक्रिय रिकॉर्ड के साथ नीचे का प्रयास करें:
Note.where("EXISTS (SELECT FROM json_array_elements(items) element WHERE element->>'description' LIKE '%PM%')")
2
user11350468
15 सितंबर 2020, 17:14
मैंने परीक्षण नहीं किया, लेकिन निम्न में से एक को काम करना चाहिए।
Note.where("items->>'description' iLIKE ?", '%PM%')
# or
Note.where("items::json -> 'description' iLIKE ?", '%PM%')
0
Emu
15 सितंबर 2020, 06:04
संबंधित सवाल
नए सवाल
ruby-on-rails
रूबी ऑन रेल्स रूबी में लिखा गया एक ओपन सोर्स फुल-स्टैक वेब एप्लिकेशन फ्रेमवर्क है। यह लोकप्रिय एमवीसी फ्रेमवर्क मॉडल का अनुसरण करता है और इसे "कॉन्फिगरेशन ओवर कॉन्फिगरेशन" अप्रोच डेवलपमेंट के दृष्टिकोण के लिए जाना जाता है।