মডিউল পাঠ (1/2)
JSON এবং JSONB ইন্টিগ্রেশন
JSON এবং JSONB ইন্টিগ্রেশন
পোস্টগ্রেএসকিউএল এসকিউএল-এর আশ্বস্ত, রক-সলিড এসিআইডি প্রকৃতিকে NoSQL-এর গতিশীল, তরল নমনীয়তার সাথে একত্রিত করে ডাটাবেসের নিয়মগুলি পুনরায় লিখেছে। এটি JSON ডেটা সঞ্চয় করার জন্য নেটিভভাবে নিবেদিত কলামগুলি অফার করে তা করেছে৷
সতর্কতা: Postgres-এ প্রায় সবসময়ই JSONB ব্যবহার করার পরামর্শ দেওয়া হয়। "B" এর অর্থ হল বাইনারি: এই কলামগুলিতে সংরক্ষিত JSON নথিগুলি তাদের সম্পূর্ণরূপে পাঠ্য বিন্যাস হারায়, কিন্তু তারা যাচাই করার ক্ষমতা অর্জন করে, খুব উচ্চ কার্যকারিতা সহ জিজ্ঞাসা করা হয়, ম্যানিপুলেট করা হয় এবং এমনকি ক্লাসিক B-ট্রি বা GIN INDEX এর সাথে সূচীবদ্ধ হয়৷
JSON নেভিগেট করা: "তীর" অপারেটর
দুর্ভাগ্যবশত ecommerce ডাটাবেসে বর্তমানে কোনো পূর্বনির্ধারিত বিশুদ্ধ JSON কলাম নেই। আমরা, তবে, অস্থায়ী JSON মান তৈরি করতে পারি এবং পাঠ্য থেকে সেগুলিকে "কাস্ট" করতে পারি!
JSON-এর সাথে কাজ করার সময়, যে অপারেটরগুলি অবজেক্ট এবং অ্যারেগুলিতে ড্রিল করে তারা হল -> (ডেটাকে তার বিশুদ্ধ jsonb/json আকারে রাখে) বা এর "বর্ধিত" সংস্করণ ->> (সামন করা JSON ডেটাকে পাঠ্যে রূপান্তর করে)।
একাডেমিক উদাহরণ, যেন একটি "মেটাডেটা" JSON কলাম বিদ্যমান:
-- Look up the value associated with the info key
SELECT metadata->'info' FROM users;
-- Drill into info, and grab city as text
SELECT metadata->'info'->>'city' FROM users;চলুন উড়ে আসা JSON প্রশ্ন করা যাক. এই json আক্ষরিক \`'{"user": {"name": "Mario"}}'::json\` প্রজেক্ট করুন এবং এক্সট্রাক্ট করা কলাম 'user_name' নামকরণ করে 'name' বের করতে পাঠ্য সংস্করণ (\`->>\`) এর সাথে মিলিত \"->\" অপারেটর ব্যবহার করুন।
ইঙ্গিত দেখান
::json বা ::jsonb-এ কাস্ট করুন এবং ->'user'->>'name' ব্যবহার করুন।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
যদি আমরা একটি অ্যারে পাস? পোস্টগ্রেসে json_b-এ অ্যারে অ্যাক্সেস INDEX (শূন্য-ভিত্তিক) দ্বারা কাজ করে। দ্বিতীয় উপাদানটিকে \`'["A", "B", "C"]'::json\` থেকে পাঠ্য হিসাবে বের করুন এবং এটিকে 'অক্ষর' নাম দিন।
ইঙ্গিত দেখান
->>1 (এটি শূন্য-ভিত্তিক!)
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ