Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

دليل MongoDB Bson: ما هو BSON وكيف يختلف عن JSON؟

BSON (JSON الثنائي) هو ترميز ثنائي مُشفر لوثائق مشابهة لـ JSON يُستخدم في قواعد بيانات MongoDB. تقدم هذه المقالة لمحة عن BSON، صيغة البيانات الثنائية المستخدمة بواسطة MongoDB لتخزين الوثائق.

Amir Hassan

Amir Hassan

Updated on نوفمبر 29, 2024

BSON (Binary JSON) هو تسلسل مشفر ثنائي لوثائق مشابهة لـ JSON يستخدم في قواعد بيانات MongoDB. تقدم هذه المقالة نظرة عامة على BSON، التنسيق الثنائي للبيانات المستخدم من قبل MongoDB لتخزين الوثائق.

توضح ما هو BSON، وكيف يوسع قدرات JSON والاختلافات الرئيسية بين BSON وJSON. بالإضافة إلى ذلك، تشمل كيفية تعامل Apidog مع هذا تلقائيًا. كما يظهر أمثلة على العمليات الأساسية CRUD وأوامر قاعدة البيانات باستخدام Apidog للتفاعل مع MongoDB.

زر

ما هو BSON في MongoDB؟

BSON (Binary JSON) هو التنسيق الأساسي للبيانات المستخدم في قواعد بيانات MongoDB. بعض الأمور الرئيسية التي يجب معرفتها عن BSON في MongoDB:

  • BSON هو تمثيل ثنائي لوثائق JSON. وهو يوسع JSON بأنواع بيانات إضافية مثل التواريخ، والطوابع الزمنية، والبيانات الثنائية، وغيرها.
  • تخزن MongoDB جميع البيانات داخليًا كـ BSON. عند إدخال مستند في MongoDB، يتم تحويله أولاً إلى BSON قبل كتابته على القرص.
  • BSON يقوم بترميز معلومات النوع والطول، مما يسمح لـ MongoDB بالمسح والتنقل بكفاءة عبر الوثائق دون فحص وتفسير كل واحد منها. وهذا يحسن الأداء.
  • BSON مصمم ليكون خفيف الوزن، وقابل للتنقل، وفعال في الترميز/فك الترميز. وهذا يجعله مناسبًا كتنسيق لتخزين البيانات وتبادلها مع MongoDB.
  • امتداد الملف الافتراضي لملفات BSON هو .bson. يمكن استخدام أدوات Mongo مثل Mongoexport لتصدير بيانات MongoDB إلى BSON للنسخ الاحتياطي أو الهجرة.
  • BSON مصمم ليكون قابلًا للتنقل بدرجة عالية. تستخدم استعلامات MongoDB الفهارس لتحديد المواقع واسترجاع النتائج بسرعة دون المسح عبر كل مستند.

هيكل مستند BSON

BSON (Binary JSON) هو تسلسل مشفر ثنائي لوثائق مشابهة لـ JSON يستخدم في قواعد بيانات MongoDB. يحتوي مستند BSON على أزواج حقل-قيمة مرتبة تشبه كائنات JSON.

يمكن أن تكون الحقول أي سلاسل UTF-8 صحيحة، بينما يمكن أن تكون القيم واحدة من عدة أنواع بيانات BSON مثل السلسلة، والعدد الصحيح، والعدد العشري، والبيانات الثنائية، والمصفوفة، والمستند، والقيمة المنطقية، والتاريخ، والقيمة null، وغيرها. يبدأ هيكل مستند BSON برقم صحيح مكون من 4 بايت يشير إلى الحجم الإجمالي للمستند.

التالي هو زوج الحقل-القيمة الذي يحتوي على حقل "_id" الذي يحدد المستند بشكل فريد. يتبع محتوى المستند مع ترميز كل زوج حقل-قيمة بتنسيق ثنائي محدد بناءً على نوع البيانات.

مثال يوضح هيكل مستند BSON:

// مستند BSON عينة
{
  _id: ObjectId("507f1f77bcf86cd799439011"), // معرف فريد مكون من 12 بايت
  name: "جون دو", // سلسلة
  age: 35, // عدد صحيح
  address: { // مستند مدرج
    street: "123 الشارع الرئيسي",
    city: "أي مدينة", 
    state: "كاليفورنيا"
  },
  hobbies: ["قراءة", "تسلق الجبال","سباحة"], // مصفوفة
  graduated: true, // قيمة منطقية
  birthday: ISODate("1980-05-15T00:00:00Z"), // تاريخ
  data: BinData(0, "SGVsbG8gV29ybGQ="), // بيانات ثنائية
  ts: Timestamp(1590583045633, 1) // طابع زمني
}

أمور رئيسية يجب ملاحظتها:

  • _id الحقل يحدد المستند بشكل فريد
  • أزواج الحقل-القيمة لها ترتيب محدد
  • يدعم أنواع بيانات إضافية مثل ISODate، ObjectId، وغيرها
  • يمكن تضمين المستندات والمصفوفات
  • البيانات الثنائية مخزنة بكفاءة

ما هو الفرق بين JSON وBSON؟

إليك الاختلافات الرئيسية بين JSON وBSON:

  • الترميز: JSON يعتمد على النص ويُشفّر بتنسيق UTF-8، بينما يُشفّر BSON بتنسيق ثنائي.
  • أنواع البيانات: JSON يدعم أنواع بيانات محدودة مثل السلاسل، والأرقام، والقيم المنطقية، والمصفوفات، والكائنات. بينما يدعم BSON أنواعًا إضافية مثل التواريخ، والبيانات الثنائية، والتعبيرات العادية، وغيرها.
  • الكفاءة: يسمح الترميز الثنائي لـ BSON بتخزين بيانات واسترجاعها بشكل أكثر كفاءة مقارنة بـ JSON. تحتوي وثائق BSON على بادئة طول ولا تحتوي على فراغات، بحيث يمكن تحليلها بشكل أسرع.
  • الترتيب: أزواج الحقل-القيمة في مستندات BSON مرتبة مما يسمح بالتنقل الفعال والفهرسة. أما كائنات JSON فلا تضمن ذلك.
  • المرونة: يوفر BSON بعض المرونة على JSON، مثل السماح لأسماء الحقول أن تحتوي على أحرف خاصة ويوتيود.
  • الاستخدام: JSON هو تنسيق عام يستخدم على نطاق واسع عبر الويب والتطبيقات. بينما يتم استخدام BSON خصيصًا في قواعد بيانات MongoDB كممثل أساسي للبيانات.
  • المخطط: JSON غير مخطط بشكل افتراضي بينما يسمح MongoDB بفرض المخططات لمستندات BSON من خلال قواعد التحقق.
  • القيم null: يحتوي JSON على قيمة null واحدة. بينما يميز BSON بين القيم null والحقول المفقودة.

تحويل JSON وBSON في MongoDB باستخدام Apidog

Apidog هو مجموعة أدوات API تسهل تطوير API. يقدم MongoDB كواحد من خيارات قواعد البيانات المدمجة. من خلال استخدام MongoDB مع Apidog، يمكنك تخزين نماذج واستطلاعات API في MongoDB كواجهة خلفية.

يمكن أن تكون استجابات API الوهمية التي يقدمها Apidog مدفوعة بالبيانات المخزنة في قاعدة بيانات MongoDB. وهذا يسمح لـ Apidog بالاستفادة من MongoDB كمصدر بيانات دائم لنماذج API. بعد ذلك، سنشرح علاقة JSON وBSON معك.

زر

تخزن MongoDB البيانات كمستندات BSON، والتي يمكن اعتبارها مجموعة شاملة من JSON. عند تشغيل قاعدة بيانات MongoDB باستخدام Apidog، يتم استخدام JSON لتكوين المحتوى. سيقوم Apidog تلقائيًا بربط كل حقل بنوع بيانات BSON المقابل بناءً على محتوى JSON الفعلي.

هناك حالة خاصة وهي حقل _id. وفقًا لتقاليد MongoDB، يجب أن يحتوي كل مستند على حقل _id كمفتاح أساسي، مع ObjectId كنوع البيانات الافتراضي بدلاً من string.

باستخدام Apidog، للإعلان عن حقل _id من نوع ObjectId، استخدم تنسيق السلسلة العادية. إذا كان محتوى السلسلة يتوافق مع تنسيق ObjectId، فسيقوم Apidog تلقائيًا بربطه بنوع ObjectId في BSON.

على سبيل المثال، في MongoDB يوجد مستند BSON مثل:

نسخ الكود
{
    _id: ObjectId('654e056de3662b1c09477cc3
'),
    name: "Apidog"
}

ثم لاستعلام هذا المستند بواسطة _id باستخدام Apidog، سيكون JSON لوضعه في "شرط الاستعلام" كما يلي:

نسخ الكود
{
    "_id": "654e056de3662b1c09477cc3"
}
MongoDB
أين يمكن تنزيل Swagger UI باللغة العربية مجانًاوجهة نظر

أين يمكن تنزيل Swagger UI باللغة العربية مجانًا

استكشف صعوبة الحصول على واجهة باللغة العربية لـ Swagger UI وتعرف على سبب كون Apidog بديلاً قويًا لمنصة تطوير واجهات برمجة التطبيقات (APIs).

Oliver Kingsley

أبريل 23, 2025

أين يمكن تحميل Postman بالعربية مجانًا؟ استكشاف الخيارات وبديل Apidogوجهة نظر

أين يمكن تحميل Postman بالعربية مجانًا؟ استكشاف الخيارات وبديل Apidog

هل يمكنك تحميل Postman بالعربية مجانًا؟ بينما يفتقر Postman للدعم الأصلي للغة العربية، توجد حلول بديلة. استكشفها واكتشف Apidog، بديل Postman القوي والموحد المصمم لتبسيط سير عمل API بالكامل، بغض النظر عن اللغة.

Oliver Kingsley

أبريل 22, 2025

للمبتدئين: الاستخدام الأساسي لبرنامج Postmanوجهة نظر

للمبتدئين: الاستخدام الأساسي لبرنامج Postman

Postman هي أداة أساسية لاختبار واجهات برمجة التطبيقات (API). يمكن أن يُحسن كفاءتك عند تنفيذ استراتيجيات API. في هذه المقالة، سأشرح أساسيات استخدام Postman، لتمكين المستخدمين الجدد من تعلمه بسهولة من خلال هذا الدليل.

@apidog

مارس 25, 2025