আমি json
PostgreSQL 9.3 এ টাইপটি পরীক্ষা করার চেষ্টা করছি ।
আমার কাছে একটি json
কলাম কল করা আছে যা data
বলা আছে reports
। জেএসওএন এর মতো কিছু দেখায়:
{
"objects": [
{"src":"foo.png"},
{"src":"bar.png"}
],
"background":"background.png"
}
আমি সমস্ত প্রতিবেদনের জন্য টেবিলটি জিজ্ঞাসা করতে চাই যা 'অবজেক্ট' অ্যারেতে 'src' মানটির সাথে মেলে। উদাহরণস্বরূপ, মেলে এমন সমস্ত রিপোর্টের জন্য কি ডিবিকে জিজ্ঞাসা করা সম্ভব 'src' = 'foo.png'
? আমি সফলভাবে একটি ক্যোয়ারী লিখেছি যা এর সাথে মেলে "background"
:
SELECT data AS data FROM reports where data->>'background' = 'background.png'
তবে যেহেতু "objects"
মানগুলির একটি অ্যারে রয়েছে তাই আমি এমন কিছু লিখতে পারি না যা কাজ করে। মেলে এমন সমস্ত প্রতিবেদনের জন্য কি ডিবিকে জিজ্ঞাসা করা সম্ভব 'src' = 'foo.png'
? আমি এই উত্সগুলি দেখেছি কিন্তু এখনও এটি পেতে পারি না:
- http://www.postgresql.org/docs/9.3/static/functions-json.html
- নতুন পোস্টগ্র্যাসকিউএল জেএসএন ডেটাটাইপের অভ্যন্তরে ক্ষেত্রগুলি ব্যবহার করে আমি কীভাবে জিজ্ঞাসা করব?
- http://michael.otacoo.com/postgresql-2/postgres-9-3-feature-highlight-json-operators/
আমি এ জাতীয় জিনিস চেষ্টা করেও লাভ করি নি:
SELECT json_array_elements(data->'objects') AS data from reports
WHERE data->>'src' = 'foo.png';
আমি কোনও এসকিউএল বিশেষজ্ঞ নই, তাই আমি কী ভুল করছি তা আমি জানি না।
jsonb
/ পিজি 9.4 এর জন্য একটি আপডেট যুক্ত করেছে । একদিকে: সাধারণ কেস (নেস্টিংয়ের 1 স্তর) এর জন্য->
অপারেটরওjson
9g।