إتقان نوع JSONB في PostgreSQL في مقال واحد
تعلم كيفية استخدام نوع JSONB في PostgreSQL لتخزين واستعلام ومعالجة بيانات JSON بكفاءة.
في تطوير التطبيقات الحديثة، أصبح التعامل مع البيانات غير المنظمة وتخزينها أمرًا شائعًا بشكل متزايد. يوفر نوع JSONB في PostgreSQL أداة قوية للمطورين لتخزين واستعلام بيانات JSON بكفاءة. في هذه المقالة، سوف نتعمق في مفهوم واستخدام نوع JSONB ونوضح ميزاته القوية من خلال أمثلة محددة على الكود.
ما هو JSONB؟
JSONB هو نوع بيانات في PostgreSQL يخزن بيانات JSON بتنسيق ثنائي. على عكس النوع العادي JSON، يعتبر JSONB أكثر كفاءة في الاستعلام والتلاعب. يدعم مجموعة غنية من المشغلين والدوال التي تبسط التعامل مع بيانات JSON. بالإضافة إلى ذلك، يدعم JSONB أنواعًا متعددة من الفهارس، بما في ذلك فهارس B-tree وHash وGIN وGiST، مما يعزز أداء الاستعلام بشكل أكبر.
إنشاء نوع JSONB
إنشاء جدول بنوع JSONB
أولاً، دعونا ننشئ جدولًا يحتوي على عمود JSONB. لنفترض أن لدينا جدول products
لتخزين معلومات المنتجات، مع تفاصيل المنتج المخزنة باستخدام نوع JSONB.
إدخال بيانات JSONB
يمكننا إدخال بيانات JSON في حقل JSONB باستخدام جملة INSERT
بسيطة.
استعلام عن بيانات JSONB
استخراج القيم من حقول JSONB
يمكننا استخدام المشغل ->>
لاستخراج قيم النصوص من حقل JSONB. يوضح المثال التالي كيفية استخراج معلومات العلامة التجارية لأحد المنتجات.
استخراج القيم المتداخلة مع JSONB
يمكننا استخدام مجموعة من المشغلين ->
و->>
لاستخراج القيم المتداخلة في بنية JSON. يوضح المثال التالي كيفية استخراج معلومات المعالج لأحد المنتجات.
استخراج القيم باستخدام مسارات JSONB
باستخدام المشغل #>>
، يمكننا استخراج القيم من مسارات محددة داخل بيانات JSON. يوضح المثال التالي كيفية استخراج معلومات التخزين.
استخدام المشغل @>
للاستعلامات الاحتوائية
يحقق المشغل @>
من ما إذا كان كائن JSONB يحتوي على كائن JSONB آخر. يوضح المثال التالي كيفية استعلام المنتجات لعلامة تجارية معينة.
تعديل بيانات JSONB
تحديث بيانات JSONB
يمكننا استخدام الدالة jsonb_set
لتحديث بيانات JSONB. تقوم هذه الدالة بتحديث القيمة في المسار المحدد. يوضح المثال التالي كيفية تحديث معلومات التخزين لأحد المنتجات.
حذف الحقول العلوية في بيانات JSONB
يمكننا استخدام المشغل -
لإزالة الحقول العلوية من بيانات JSONB. يحذف هذا المشغل المفتاح المحدد من كائن JSONB. يوضح المثال التالي كيفية إزالة حقل علوي من تفاصيل المنتج.
حذف الحقول المتداخلة في JSONB
يمكننا استخدام المشغل #-
لإزالة عناصر مسار محددة من بيانات JSONB. يحذف هذا المشغل المفتاح في المسار المحدد. يوضح المثال التالي كيفية حذف معلومات المعالج من مواصفات المنتج.
استعلامات متقدمة لـ JSONB
استخدام مصفوفات JSONB
يمكن أن تتضمن بيانات JSONB مصفوفات، ويمكننا استخدام المشغلين المتعلقين بالمصفوفات للتعامل مع هذه البيانات. يوضح المثال التالي كيفية تخزين واستعلام عن المنتجات بمؤشراتها المتعددة.
في المثال أعلاه، يمكنك أيضًا استخدام المشغل ?
للتحقق مما إذا كانت مصفوفة JSONB تحتوي على عنصر معين:
دمج بيانات JSONB
يمكننا استخدام المشغل ||
لدمج كائنين من JSONB. يمزج هذا المشغل بين كائنين JSONB في واحد. يوضح المثال التالي كيفية دمج مواصفات جديدة في تفاصيل المنتج الحالية.