نشر بتاريخ : 20 الأربعاء , يوليو, 2022

MongoDB

MongoDB هي قاعدة بيانات مستندات (document database) مصممة لتسهيل تطوير التطبيقات وتوسيع نطاقها.

MongoDB هو برنامج قاعدة بيانات مفتوح المصدر متعدد المنصات موجه نحو المستندات. يستخدم MongoDB ، المصنف كبرنامج قاعدة بيانات NoSQL ، مستندات تشبه JSON مع مخططات اختيارية . تم تطوير MongoDB بواسطة شركة MongoDB Inc. ومرخصة بموجب الترخيص العام من جانب الخادم (SSPL) والذي يعتبر غير مجاني من خلال العديد من التوزيعات.

 

لمحة تاريخية

بدأت شركة برمجيات  (10gen) في تطوير MongoDB في عام 2007 كمكون لمنصة مخططة كمنتج خدمة. في عام 2009 ، تحولت الشركة إلى نموذج تطوير مفتوح المصدر ، حيث تقدم الشركة الدعم التجاري والخدمات الأخرى. في عام 2013 ، غيرت 10gen اسمها إلى MongoDB Inc.
MongoDB هي شركة عالمية مقرها الولايات المتحدة في مدينة نيويورك ومقرها الدولي في دبلن.
في 30 أكتوبر 2019 ، تعاونت MongoDB مع Alibaba Cloud ، والتي ستقدم لعملائها حل MongoDB كخدمة. يمكن للعملاء استخدام العرض المُدار من مراكز البيانات العالمية التابعة لـ BABA.

 

الميزات الرئيسية

 

استعلامات مخصصة (Ad-hoc queries)

يدعم MongoDB البحث الميداني والبحث عن النطاق والتعبير العادي .  يمكن أن ترجع الاستعلامات حقول محددة من المستندات وتتضمن أيضًا وظائف JavaScript معرفة من قبل المستخدم . يمكن أيضًا تكوين الاستعلامات لإرجاع عينة عشوائية من النتائج ذات الحجم المحدد.

 

الفهرسة (Indexing)

يمكن فهرسة الحقول في مستند MongoDB بالمؤشرات أو الفهرس الأولي والثانوي.

 

النسخ المتماثل (Replication)

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

إذا كان نشر MongoDB المتماثل يحتوي على عضو ثانوي واحد فقط ، فيجب إضافة برنامج خفي منفصل يسمى الحكم إلى المجموعة. لديها مسؤولية واحدة ، وهي حل انتخابات الانتخابات التمهيدية الجديدة.  نتيجة لذلك ، يتطلب نشر MongoDB الموزع المثالي ما لا يقل عن ثلاثة خوادم منفصلة ، حتى في حالة خادم أساسي واحد وآخر ثانوي.

 

موازنة الحمل (Load balancing)

يتم قياس MongoDB أفقيًا باستخدام التجزئة . يختار المستخدم مفتاح جزء ، والذي يحدد كيفية توزيع البيانات في المجموعة. يتم تقسيم البيانات إلى نطاقات (بناءً على مفتاح الجزء) وتوزيعها عبر أجزاء متعددة. (الجزء عبارة عن نسخة رئيسية بها نسخة متماثلة واحدة أو أكثر.) بدلاً من ذلك ، يمكن تجزئة مفتاح الجزء للتعيين إلى جزء - مما يتيح توزيعًا متساويًا للبيانات.

يمكن تشغيل MongoDB على خوادم متعددة ، وموازنة التحميل أو تكرار البيانات للحفاظ على النظام وتشغيله في حالة فشل الأجهزة.

 

تخزين الملفات (File storage)

يمكن استخدام MongoDB كنظام ملفات ، يسمى GridFS ، مع موازنة التحميل وميزات النسخ المتماثل للبيانات عبر أجهزة متعددة لتخزين الملفات.

هذه الوظيفة ، التي تسمى نظام ملفات الشبكة ،  مضمنة في برامج تشغيل MongoDB. يعرض MongoDB وظائف للمطورين لمعالجة الملفات والمحتوى. يمكن الوصول إلى GridFS باستخدام الأداة المساعدة mongofiles أو المكونات الإضافية لـ Nginx  و lighttpd .  GridFS يقسم الملف إلى أجزاء ، أو يقطع ، ويخزن كل من هذه الأجزاء كمستند منفصل.

 

تجميع (Aggregation)

يوفر MongoDB ثلاث طرق لأداء التجميع: خط أنابيب التجميع ، ووظيفة تقليل الخريطة ، وطرق التجميع أحادية الغرض.

يمكن استخدام Map- Red في المعالجة المجمعة للبيانات وعمليات التجميع. ولكن وفقًا لوثائق MongoDB ، يوفر خط أنابيب التجميع أداءً أفضل لمعظم عمليات التجميع.

يتيح إطار عمل التجميع للمستخدمين الحصول على نوع النتائج التي يتم استخدام عبارة SQL GROUP BY من أجلها. يمكن ربط مشغلي التجميع معًا لتشكيل خط أنابيب - مماثل لأنابيب Unix . يتضمن إطار عمل التجميع عامل التشغيل $ lookup الذي يمكنه ضم المستندات من مجموعات متعددة ، بالإضافة إلى العوامل الإحصائية مثل الانحراف المعياري.

 

تنفيذ JavaScript من جانب الخادم (Server-side JavaScript execution)

يمكن استخدام JavaScript في الاستعلامات ووظائف التجميع (مثل MapReduce ) وإرسالها مباشرة إلى قاعدة البيانات ليتم تنفيذها.

 

مجموعات ذات توج (Capped collections)

يدعم MongoDB المجموعات ذات الحجم الثابت والتي تسمى المجموعات ذات الحد الأقصى. يحافظ هذا النوع من المجموعات على ترتيب الإدراج ، وبمجرد الوصول إلى الحجم المحدد ، يتصرف مثل قائمة انتظار دائرية .

 

  

الطبعات (Editions)

  • خادم مجتمع MongoDB (Community Server)
  • إصدار مجتمع MongoDB مجاني ومتاح لأنظمة التشغيل Windows و Linux و macOS.
  • MongoDB Enterprise Server   : MongoDB Enterprise Server  هو الإصدار التجاري من MongoDB ، وهو متاح كجزء من اشتراك MongoDB Enterprise Advanced.
  • أطلس MongoDB  MongoDB متاح أيضًا كخدمة مُدارة بالكامل عند الطلب. يعمل MongoDB Atlas على AWS و Microsoft Azure و Google Cloud Platform.

 

العمارة (Architecture)

  • الوصول إلى لغة البرمجة  : لدى MongoDB برامج تشغيل رسمية للغات البرمجة وبيئات التطوير الرئيسية.  هناك أيضًا عدد كبير من برامج التشغيل غير الرسمية أو المدعومة من المجتمع للغات وأطر البرمجة الأخرى.
  • الوصول بدون خادم (Serverless access)
  • الإدارة والواجهات الأمامية الرسومية    (Management and graphical front-ends)

 

تسجيل الإدراج في MongoDB مع Robomongo 0.8.5
كانت الواجهة الأساسية لقاعدة البيانات هي mongo shell. منذ MongoDB 3.2 ، تم تقديم MongoDB Compass باعتباره واجهة المستخدم الرسومية الأصلية. هناك منتجات ومشاريع تابعة لجهات خارجية توفر واجهات مستخدم للإدارة وعرض البيانات.