ما المقصود بـ MongoDB؟ دليل الخبراء

جيفري إريكسون | كاتب أول | 30 أكتوبر 2024

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

مع ذلك، تبين أن MongoDB قدمت نوعًا من بساطة قاعدة البيانات المتعطش لها المطورون. تم إطلاقها في إطار نموذج التطوير مفتوح المصدر في عام 2009، وانتقلت إلى SSPL (ترخيص الخادم العام) في عام 2018، وتطورت لتصبح مخزن البيانات القياسي الفعلي للعديد من مجموعات التطوير مفتوحة المصدر، مع قائمة عملاء تتضمن Expedia وLyft وeBay وغيرها الكثير. دعونا نرى ما يحفز ذلك.

ما المقصود بـ MongoDB؟

تمثل MongoDB قاعدة بيانات شائعة مفتوحة المصدر تستخدم على نطاق واسع في تطبيقات الويب والأجهزة المحمولة الحديثة. يتم تصنيفها على أنها قاعدة بيانات NoSQL، مما يُعني أنها تتبع نهجًا مرنًا وموجَّهًا نحو المستندات لتخزين البيانات بدلاً من طريقة علائقية تقليدية قائمة على الجداول. يأتي جزء كبير من جاذبية MongoDB في بساطتها وتركيزها على المطورين. على سبيل المثال، يتم تحديد تفاعلات Mongo بواسطة اختصار CRUD، للإنشاء، والقراءة، والتحديث، والحذف.

توفر MongoDB البيانات في مستندات JSON التي تسهِّل نسبيًا استخدام البيانات المُخزنة—سواء كانت مُنظمة أو غير مُنظمة أو شبه مُنظمة—لأنواع مختلفة من التطبيقات. يسمح نموذج البيانات المرن من MongoDB للمطورين بتخزين البيانات غير المُنظمة مع تقديم دعم الفهرسة للوصول إلى الملفات أسرع والنسخ المتماثل لحماية البيانات وتوفرها. يعني هذا أنه يمكن للمطورين تصميم التطبيقات المُتطورة وإنشائها باستخدام MongoDB.

في حين تم تطوير قاعدة بيانات MongoDB لتتبع عدد مرات ظهور الإعلان عبر الآلاف من مواقع خدمة الإعلانات، إلا أنها سرعان ما اكتسبت شعبية واسعة باعتباره مخزن بيانات مرن في تطوير الويب مفتوح المصدر. تطورت باستمرار منذ إطلاقها في عام 2007، إذ جمعت مجموعة ميزات قوية تتضمن استعلامات مُخصصة وفهرسة وتجميع فوري. تتمثل إحدى المزايا الرئيسة لـ MongoDB للمطورين في أنها تتعلق بقواعد البيانات العلائقية الأكثر شيوعًا، ومن السهل استخدامها وسرعة بدء عملها. يتم ربط نوع مستندات JSON المُخزنة في MongoDB بأنواع بيانات مألوفة موجودة بلغات البرمجة الشائعة، مثل لغة JavaScript أو قواميس Python. كما توفر Mongo قائمة شاملة من مكتبات العملاء مع دعم برنامج التشغيل لمعظم لغات البرمجة، بما في ذلك PHP و.Net وJava وPython وNode.js وغيرها الكثير.

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

طريقة عمل مخطط MongoDB، الوصف أدناه:
طريقة عمل MongoDB

كيف تنتقل البيانات من التطبيقات إلى قاعدة بيانات MongoDB؟

  • تتفاعل تطبيقات العميل بلغات البرمجة المختلفة مع قاعدة بيانات MongoDB.
    1. تُعد برامج التشغيل مكتبات خاصة باللغة تسمح للتطبيقات بالاتصال بـ MongoDB.
    2. يمثل خادم قاعدة بيانات MongoDB الموقع الذي يتم فيه تخزين بياناتك وإدارتها. قد تكون مجموعة واحدة أو نسخة متماثلة أو مُقسمة.
    3. تحتفظ ملفات البيانات بالمستندات الفعلية في قاعدة بيانات MongoDB.
    4. يمثل نظام تخزين الحزم الموقع الذي يتم فيه تقسيم الملفات إلى أقسام ذات حجم ثابت وتخزينها
    يوضح المخطط تدفق البيانات الأساس بين التطبيقات وقاعدة بيانات MongoDB.

    بيئات MongoDB

    تأتي MongoDB في مجموعة من التكوينات ومستويات الخدمة لتناسب احتياجات المطورين الذين يعملون على مشروعات المؤسسات الصغيرة والمتوسطة وحتى الكبيرة.

    • يمثل MongoDB Atlas عرض قاعدة بيانات كخدمة من MongoDB لنشر قواعد البيانات وإدارتها عبر موفري السحابة. يؤتمت Atlas العديد من المهام الإدارية، مثل التوسع والنُسخ الاحتياطية.
    • إصدار مجتمع MongoDB هو إصدار مفتوح المصدر من قاعدة البيانات مصمم خصيصًا ليتناسب مع المشروعات الصغيرة والمتوسطة الحجم التي تبحث عن حل NoSQL. نظرًا إلى أنه مفتوح المصدر، فهو مُناسب للتعديل والابتكار، ويوفر للمطورين مجتمعًا قويًا للعثور على المساعدة. مع ذلك، يفتقر الإصدار المجتمعي إلى الدعم الرسمي واتفاقيات مستوى الخدمة (SLA)، كما تتمتع بخيارات أمنية أقل، ولا توفر سوى أدوات إدارة محدودة.
    • يُعد إصدار MongoDB المتقدم للمؤسسات الإصدار المتميز والمتوفر تجاريًا من إصدار مجتمع MongoDB. كما يوفر خيارات أمان محسنة ومحرك تخزين مُضمن بالذاكرة لدعم حالات الاستخدام على مستوى المؤسسة.

    النقاط الرئيسة

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

    شرح MongoDB

    إن MongoDB هي قاعدة بيانات NoSQL تستخدم نموذج بيانات موجّه للمستندات، إذ يمثل كل سجل مستند مُخزن في مجموعة، بدلاً من الصفوف والأعمدة المشتركة بين قواعد البيانات العلائقية الشائعة، مثل MySQL.

    يخزِّن MongoDB مستندات JSON باستخدام تنسيق يسمى BSON أو تنسيق JSON الثنائي. تعني الطبيعة غير العلائقية لهذه المستندات أنها يمكنها تخزين بيانات التطبيقات المُنظمة—ويمكن لقاعدة البيانات معالجتها، بالإضافة إلى البيانات شبه المُنظمة وغير المُنظمة. على عكس قواعد البيانات العلائقية، لا تستخدم MongoDB مخططات جامدة. بدلاً من ذلك، تكون المستندات مرنة ويمكن أن تحتوي على مصفوفات ومستندات متداخلة، مما يسمح بتخزين البيانات المُعقدة والهرمية.

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

    تتميز قواعد بيانات المستندات الهرمية بسرعة كبيرة في عمليات القراءة، لكن قد يكون تحليل البيانات بطيئًا نظرًا إلى ضرورة تحليل الأنظمة البيانات في جميع الكيانات المتداخلة. على النقيض من ذلك، تخزِّن قواعد البيانات العلائقية بياناتها في جداول مُنفصلة، ويمكن الإشارة إلى "كائن" واحد في العديد من الجداول داخل قاعدة البيانات، مما يسمح بعمليات تحليلية أكفأ على نطاق واسع. بالنظر إلى نقاط القوة المُختلفة هذه، تختار فِرق التطوير بشكل عام أفضل نظام لإدارة البيانات لتلبية الاحتياجات الحالية لتطبيقها. أو يمكنها اختيار قاعدة بيانات مُتعددة الوسائط توفر وصول SQL كامل إلى بيانات مستندات بتنسيق JSON وعلائقية على حد سواء بالإضافة إلى العديد من أنواع البيانات الأخرى.

    نموذج ACID مقابل نموذج BASE

    يعتمد ما تختاره على احتياجات تطبيقك.

    ACID (الذرية والاتساق والعزل والمتانة) BASE (تتوفر بشكل أساس، حالة مرنة، مُتسقة في النهاية)

    الذرية: تضمن أن يتم التعامل مع معاملة كاملة باعتبارها وحدة واحدة. إما أن تنجح كل التغييرات، وإما أن لا ينجح أي منها. يمنع هذا التحديثات الجزئية التي قد تترك بياناتك في حالة غير مُتسقة.

    الاتساق: يضمن انتقال قاعدة البيانات من حالة صالحة إلى أخرى بعد المعاملة. يفرض قواعد الأعمال وسلامة البيانات.

    العزل: يضمن عدم تداخل المعاملات المتزامنة مع بعضها بعضًا. يُظهر أن كل معاملة يتم تنفيذها بشكل مُنفصل، حتى إذا حدثت معاملات متعددة في وقت واحد.

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

    تتوفر بشكل أساس: تركز على زيادة توافر البيانات إلى أقصى حد. يسعى النظام إلى البقاء قيد التشغيل حتى أثناء حالات الفشل الجزئية، مما يسمح لمعظم عمليات القراءة والكتابة بالمتابعة.

    الحالة المرنة: لا يتم ضمان اتساق البيانات فورًا بعد عملية الكتابة. قد يوجد تأخر طفيف قبل أن تنعكس التغييرات عبر جميع النسخ المتماثلة، مما يؤدي إلى عدم اتساق مؤقت.

    مُتسق في نهاية المطاف: مع مرور الوقت، يتم تحقيق الاتساق من خلال عمليات المعالجة الخلفية التي تزامن التغييرات عبر النسخ المتماثلة.

    الايجابيات:

    تجعل السلامة العالية للبيانات والاتساق القوي ACID مثاليًا للتطبيقات التي تتطلب الدقة، مثل المعاملات المالية.

    الايجابيات:

    يجعل التوفر العالي وقابلية التوسع قاعدة البيانات مثالية للتطبيقات التي تتطلب وقت تشغيل واستجابة عالية، خاصةً في الأنظمة الموزَّعة. تتيح متطلبات الاتساق المريحة سرعات كتابة أسرع وقابلية توسع أفضل.

    السلبيات:

    تعني النفقات الإضافية للأداء أن الحفاظ على ضمانات ACID يمكن أن يؤدي إلى سرعات كتابة أبطأ. يمكن أن تصبح متطلبات الاتساق الجامدة صعبة الإدارة في بيئات قابلة للتطوير بدرجة كبيرة.

    السلبيات:

    يمكن أن تحدث حالات عدم اتساق مؤقتة خلال مزامنة البيانات، مما يجعل قاعدة البيانات أقل ملاءمة للتطبيقات التي يكون فيها تكامل البيانات جامد والاتساق الفوري أمرًا بالغ الأهمية.

    كيف تعمل MongoDB؟

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

    لتحسين الأداء، يدعم MongoDB الفهرسة في أي حقل بالمستند. تدعم الفهارس التنفيذ الفعَّال للاستعلامات ويمكن أن تتضمن فهارس أولية وثانوية. تدعم لغة استعلام MongoDB عمليات CRUD (الإنشاء والقراءة والتحديث والحذف) وتسمح بالتجميع المُعقد والبحث النصي والاستعلامات الجغرافية المكانية. للمساعدة في تحسين أوقات الاستجابة، توفر MongoDB إطار عمل تجميع، يتيح للمطورين إعداد معالجة بيانات مُعقدة على جانب الخادم. يعني هذا أنها قادرة على إجراء تحليلات على المجموعة التي توجد بها البيانات، دون الحاجة إلى نقلها إلى منصة أخرى، كما هو الحال مع Apache Spark أو Hadoop. يمكن أن يقلل هذا من كمية البيانات التي يتم نقلها من العملاء وإليه.

    تقدم MongoDB توافر عالٍ وتحسِّن الأداء من خلال دعم مجموعات البيانات المتماثلة. يمكن استخدام النسخ المتماثلة لموازنة الحمل من خلال توزيع عمليات القراءة والكتابة عبر جميع المثيلات. توفر مجموعات النسخ المتماثلة هذه أيضًا تكرارًا وتزيد من توافر البيانات عبر نُسخ متعددة من البيانات على خوادم قواعد بيانات مختلفة. في حالة تعطل الأجهزة أو صيانتها، تسمح مجموعات النسخ المتماثلة لـ MongoDB بتوفير تجاوز تلقائي وتكرار البيانات.

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


    طريق عمل التقسيم

    يُعد كل تقسيم مثيل قاعدة بيانات مستقل يستضيف مجموعات فرعية من بيانات قاعدة بيانات مُقسمة.

    طريقة عمل التقسيم في المخطط
    يعرض المخطط تدفقًا أحادي الاتجاه من تطبيق العميل في الأعلى إلى تقسيمات قاعدة البيانات في الأسفل.

    MongoDB مقابل نظام RDBMS

    كل نوع من قواعد البيانات—علائقية، مثل MySQL، وPostgres، وOracle Database، أو موجَّهة نحو المستند، مثل CouchDB، وDynamoDB، وMongoDB—له نقاط قوة وضعف، ويعتمد الاختيار بينها بشكل عام على المتطلبات والقيود المحددة للتطبيق قيد التطوير.

    يستخدم نظام إدارة قواعد البيانات العلائقية (RDBMS) لغة استعلام هيكلية (SQL)، بينما يستخدم التنسيق الذي يركز على المستندات من MongoDB واجهات برمجة التطبيقات لمخزن المستندات. مع ذلك، تستخدم لغة الاستعلام من MongoDB (MQL) لغة تشبه لغة JavaScript مع عمليات مثل تكوين المستندات وقراءتها وتحديثها وحذفها.

    لا تمتلك MongoDB مفهوم للجداول والصفوف وتفتقر إلى المخططات، لذلك يوجد هيكل أقل لتحديده قبل استخدام قاعدة البيانات. مع عدم وجود مخطط مركزي، يحتاج كل تطبيق يصل إلى المجموعات إلى فهم المستند. لذا يكون "المخطط" في التعليمات البرمجية للتطبيق وغير محدد في قاعدة البيانات. إذا غيَّر أحد التطبيقات المخطط، فقد تتعطل التطبيقات الأخرى. بالمقارنة مع قواعد البيانات العلائقية، إذ يعد المخطط في الأساس خريطة لنظام إدارة قاعدة البيانات العلائقية (RDBMS) ويتم تعريف تنظيم البيانات والارتباط البيني بشكل صريح، وتفتقر MongoDB إلى المفهوم المتأصل للعلاقات بين البيانات.

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

    في حين يكون إعداد مثيل MongoDB الأساس بسيطًا، فإن تكوين مجموعة MongoDB الموزَّعة واسعة النطاق وصيانتها مع التقسيم والنسخ المتماثلة يمكن أن يكون مُعقدًا ويتطلب فهمًا جيدًا للبنية وخيارات التكوين الخاصة بها.


    الفروق الرئيسية

    علائقية MongoDB
    نموذج البيانات تستخدم الجداول ذات الصفوف والأعمدة الثابتة، والبيانات مُنظمة بها في مُخطط محدد مُسبقًا. تستخدم مجموعات من المستندات، وهي بُنى تشبه JSON مع مخططات ديناميكية.
    مرونة المخطط تتطلب مُخططًا مُحدد مُسبقًا يجب إعداده قبل إضافة البيانات. تشتمل على مخطط قاعدة بيانات ديناميكي. يمكن إضافة حقول جديدة إلى مستند دون التأثير على كل المستندات الأخرى في المجموعة.
    لغة الاستعلام تستخدم لغة SQL، وهي فعَّالة للغاية في الاستعلامات المُعقدة، لتحديد البيانات ومعالجتها. تستخدم لغة استعلام قائمة على المستندات وتعتبر أسهل لكنها أقل اكتمالاً وتنوعًا من SQL.
    التوسع تقليديًا تتوسع عموديًا، وبالتالي؛ يضيف هذا المزيد من الطاقة إلى الجهاز الحالي، على الرغم من أن الميزات الناضجة، مثل التقسيم وOracle Real Application Clusters توفر دعمًا للتوسع الأفقي. تم تصميمها للتوسع أفقيًا عبر أجهزة متعددة باستخدام التقسيم، الذي يوزَّع البيانات عبر مجموعة من الأجهزة.
    المعاملات تدعم المعاملات متعددة الصفوف والمتوافقة مع ACID، مما يجعلها مناسبة للتطبيقات دون فقدان البيانات أو تلفها. تدعم المعاملات متعددة المستندات، لكن من المعروف أنها أقل قوة من معظم قواعد البيانات الارتباطية التقليدية، خاصةً عبر البيانات الموزَّعة.
    الأداء تم تصميمها لضمان دقة المعاملات، لكن يمكن أن يكون الأداء أقل لأحجام البيانات الكبيرة. مع ذلك، يكون الأداء التحليلي أفضل بشكل عام. مصممة لأجل تحقيق أداء قراءة عالي عبر كميات كبيرة من البيانات.

    لماذا نستخدم MongoDB؟

    إن MongoDB مناسبة لمجموعة واسعة من الاستخدامات، بدايةً من تطبيقات CRUD البسيطة، مثل تطبيق التدوين أو تدوين الملاحظات، وصولاً إلى المنصات المُعقدة، مثل Amazon Prime. يتم اختيار MongoDB غالبًا لأنظمة إدارة المحتوى (CMSes)، وتطبيقات الألعاب تلك التي يجب أن تكون مزامنة البيانات فيها سريعة، وبيانات الرعاية الصحية البيومترية، من بين العديد من حالات الاستخدام الأخرى. جعلها التنوع حجر الزاوية في مجموعات التطوير مفتوحة المصدر الشائعة، مثل MEAN وMERN.

    اخترها عندما تحتاج إلى ما يلي:

    • المرونة. يوفر تنسيق مستند JSON الخاص بـ MongoDB طريقة بسيطة ويسيرة لتمثيل بُنى البيانات الهرمية التي تتطلب روابط مُعقدة عبر استعلامات SQL.
    • التوافر. توفر ميزات قاعدة البيانات الموزَّعة من MongoDB توفرًا عاليًا، حتى مع مجموعات البيانات الكبيرة التي تتغير كثيرًا.
    • قابلية التوسع. تم تصميم MongoDB لجمع مجموعات البيانات الكبيرة سريعة التغير والمُتنوعة ومعالجتها وتحليلها.
    • الأداء. إن تحسين الأداء من خلال أساليب مثل النسخ المتماثل والتقسيم وغيرها يجعل MongoDB خيارًا سليمًا للتطبيقات الكبيرة في مجالات مثل الوسائط والترفيه.
    • التوافق. توفر المستندات من نوع JSON من MongoDB توافقًا سهلاً مع أنواع البيانات المألوفة الموجودة بلغات البرمجة الشائعة. بالإضافة إلى ذلك، توفر مكتبات عملاء MongoDB برامج تشغيل لمعظم لغات البرمجة، مثل PHP و.Net وJavaScript وغيرها الكثير.
    • دعم المجتمع. يُعد MongoDB مخزن بيانات قياسي بحكم الواقع داخل العديد من مجموعات التطوير مفتوحة المصدر، التي يتوفر بها دعم مجتمعي.

    ميزات MongoDB

    أصبحت MongoDB شائعة جزئيًا لدى المطورين بسبب واجهة برمجة التطبيقات السهلة ونموذج البيانات المرن والميزات التي تشمل ما يلي:

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

    مزايا MongoDB

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

    • سهولة الاستخدام للمطورين. يختار غالبًا المطورون MongoDB لأنه من السهل تنزيلها أو الوصول إليها عبر السحابة، مما يعني أنه يمكنهم البدء بسرعة—يرجع ذلك جزئيًا إلى أنه من الأسهل التعامل مع المستندات بدلاً من إنشاء نموذج بيانات والعمل مع الجداول.
    • الكفاءة. توفر صيغة JSON عددًا من أوجه الكفاءة، مع ملفات مستندات صغيرة ومحتوى يمكن للإنسان قراءته. ترمّز MongoDB المستندات بتنسيق ثنائي (BSON)، وهو أكثر ضغطًا وأسرع لتحليله مقارنة بالنص العادي.
    • المخططات المرنة. يسمح نموذج بيانات مستند MongoDB بمخططات مرنة وذاتية الوصف، مما يسمح للحقول بالتنوع من مستند إلى آخر.
    • لغة استعلام بسيطة. تم تصميم لغة الاستعلام MongoDB (MQL) لتكون سهلة الاستخدام للمطورين، مما يوفر القدرة على تسريع الاستعلامات والفهارس المعقدة للاستعلامات شائعة الاستخدام.
    • وجود حصري على السحابة. تمثل MongoDB Atlas قاعدة بيانات سحابية أصلية، لذلك تحصل على تحديثات مُتكررة وتتكيف بسرعة مع التكنولوجيا الجديدة. كما يسهل استخدامها في ترحيل تطبيق إلى السحابة.

    عيوب MongoDB

    على الرغم من أن MongoDB توفر العديد من المزايا، خاصةً بالنسبة إلى التطبيقات التي تتطلب المرونة والأداء العالي وسط أحجام البيانات الكبيرة، إلا أنها تأتي مع العديد من العيوب المحتملة.

    • دعم المعاملات. يتسم دعم معاملات MongoDB بأنه ليس ناضجًا أو قويًا كما هو موجود في قواعد البيانات العلائقية التقليدية. قد لا تحقق المعاملات المُعقدة، وخاصةً تلك التي تمتد عبر عمليات متعددة أداءً جيدًا وقد يكون من الصعب تنفيذها في MongoDB.
    • اتساق البيانات. يمكن أن يؤدي استخدام MongoDB في "الاتساق النهائي" لمجموعات النسخ المتماثلة إلى حالات لا يقرأ فيها جميع المستخدمين نفس البيانات في نفس الوقت. بالنسبة إلى التطبيقات التي تتطلب اتساقًا قويًا، يمكن أن يكون هذا عيبًا خطيرًا.
    • عمليات الربط. لا تدعم MongoDB الروابط كما تدعم قواعد بيانات SQL. مع ذلك، فإنها توفر خيارات تؤدي وظيفة مماثلة، على الرغم من أنها أقل كفاءة بشكل عام ويمكن أن تؤدي إلى استعلامات أكثر تعقيدًا وأداء أبطأ—خاصةً عند التعامل مع العلاقات المُعقدة بين المستندات.
    • استخدام الذاكرة. تخزِّن MongoDB البيانات والفهارس الأكثر استخدامًا في ذاكرة RAM، لذلك؛ يعتمد أدائها بدرجة كبيرة على وجود ذاكرة RAM كافية. نتيجة إلى ذلك، يمكن أن تستهلك قاعدة بيانات MongoDB المزيد من موارد الذاكرة، وربما أجهزة أكثر من قواعد البيانات الأخرى.
    • تكاليف التخزين الإضافية. يمكن أن يؤدي نموذج المستند الذي يحتوي نفسه المستخدم بواسطة MongoDB إلى متطلبات تخزين أكبر مقارنة بالجداول التي تم تطبيعها بشكل كبير في قواعد البيانات العلائقية. بالإضافة إلى ذلك، يمكن أن يتسبب مخطط MongoDB الديناميكي في تكرار البيانات وتجزئتها التي يمكن أن تزيد من استخدام التخزين—والتكاليف.
    • القيود على الفهرسة. تدعم MongoDB العديد من خيارات الفهرسة، لكن يمكن أن يقلل الحفاظ على عدد كبير من الفهارس من أداء الكتابة. لم يتم إنشاؤها لمجرد عمليات الكتابة المتكررة، لأن كل عملية كتابة قد تحتاج إلى تحديث فهارس متعددة—وغالبًا بوضع أداء الاستعلام مقابل أداء الكتابة.
    • التكلفة. في السيناريوهات التي تتطلب توافرًا عاليًا وتوسُّعًا أفقيًا، يمكن أن تكون التكلفة المرتبطة بتشغيل مجموعة MongoDB وصيانتها—خاصةً في البيئات السحابية—كبيرة. كما تزيد الحاجة إلى سعة كبيرة من ذاكرة الوصول العشوائي (RAM) ووحدات التخزين من التكاليف. ذلك صحيح بشكل خاص في حالات التوافر العالي التي يتتطلب فيها قواعد البيانات المتماثلة عددًا متساوًا من الموارد.

    التوافق مع MongoDB

    تُعد MongoDB قاعدة بيانات من NoSQL تعمل بشكل جيد داخل هذا المنظومة، لكنها مصممة أيضًا للتفاعل مع أنواع أخرى من أنظمة إدارة قواعد البيانات من خلال أدوات وموصلات تكامل بيانات مختلفة. تتضمن مجموعة الأدوات هذه بنية تحتية لـ ETL (استخراج البيانات وتحويلها وتحميلها) لاستخراج البيانات وترحيلها من MongoDB والعكس صحيح. يفيد هذا في إرسال البيانات إلى قاعدة بيانات علائقية لأجل إعداد التقارير وتحليلات البيانات المُعقدة. يمكن لتطبيقات MongoDB أيضًا الاتصال عبر منصات مُختلفة لقاعدة البيانات باستخدام واجهات برمجة تطبيقات REST.

    تشغيل أحمال عمل MongoDB في Oracle Autonomous Database

    من الأمثلة الجيدة على توافق MongoDB هو Oracle Database API for MongoDB، التي تتيح للمطورين استخدام أدوات MongoDB مفتوحة المصدر وبرامج التشغيل المتصلة بـ Oracle Autonomous JSON Database. يمنحها هذا الوصول إلى إمكانات النماذج المتعددة من Oracle ويساعدها في تجنب نقل البيانات إلى قاعدة بيانات مُنفصلة للتحليلات والتعلم الآلي (ML) والتحليل المكاني. فكِّر في قاعدة بيانات JSON الذاتية بصفتها بديل متعدد الوسائط لـ MongoDB Atlas. توجد حاجة غالبًا إلى إدخال تغييرات قليلة أو معدومة للتطبيقات الحالية.

    ترحيل أحمال عمل MongoDB إلى Oracle Autonomous JSON Database

    بدلاً من الوصول إلى وظائف MongoDB عبر واجهات برمجة التطبيقات، يمكن للمطورين ببساطة ترحيل أحمال العمل التي تركز على JSON إلى Oracle Autonomous JSON Database على البنية التحتية من Oracle Cloud (OCI). يوفر هذا خدمة قاعدة بيانات مستندات سحابية للتطبيقات التي تركز على JSON والتي تتميز بواجهات برمجة تطبيقات المستندات ذات نمط NoSQL (الوصول البسيط إلى مستندات Oracle، أو SODA، وOracle Database API for MongoDB)، والتوسُّع دون خادم، ومعاملات ACID عالية الأداء، والأمان الشامل، والتسعير المنخفض للدفع مقابل الاستخدام. لا يوجد وقت تعطل لأن الترحيل من MongoDB إلى Oracle Autonomous JSON Database يتحقق باستخدام GoldenGate لـ البنية التحتية من Oracle Cloud (OCI).

    بدء استخدام Autonomous Database

    يتمتع مستخدمو MongoDB الآن بطريقة أكثر تنوعًا لإنشاء تطبيقات تركز على JSON. تمنح Oracle Autonomous Database المطورين المرونة اللازمة للاستجابة إلى متطلبات الأعمال باستخدام منصة واحدة للبيانات يمكن أن تساعد في تلبية جميع احتياجاتهم—مما يتيح للمطورين استخدام مستندات SQL وJSON والرسوم البيانية والجغرافية المكانية والنص والمتجهات في قاعدة بيانات واحدة لإنشاء ميزات جديدة بسرعة.

    بالإضافة إلى ذلك، توفر ميزة جديدة ثورية في Oracle Database، وهي JSON Relational Duality مزايا لكل من الجداول العلائقية ومستندات JSON، دون مفاضلات بين أي من النموذجين.

    توفر قاعدة البيانات الذاتية خدمات الذكاء الاصطناعي المتكاملة والتعلم الآلي داخل قاعدة البيانات (ML) لتحسين تطبيقاتك من خلال تحليل النص والصور أو التعرّف على الكلام أو التوصيات المُخصصة. بالإضافة إلى ذلك، تترجم ميزة Autonomous Database Select AI اللغة الطبيعية تلقائيًا إلى استعلامات قاعدة بيانات وتسمح لك بإجراء محادثة سياقية مع قاعدة البيانات، دون أي تعليمات برمجية مُخصصة أو عمليات يدوية عبر واجهة معقدة. ولأن قاعدة البيانات مستقلة تمامًا، فإنها تمكن فِرق التطوير من الاستمرار في التركيز على إنشاء التطبيقات من خلال ضمان وقت التشغيل وحماية البيانات من خلال تدابير الأمان المؤتمتة والمراقبة المستمرة.

    يمكنك بدء الاستخدام اليوم مجانًا، وحتى يمكنك تجربة ورشة عمل لمعرفة طريقة استخدام SQL وJSON وOracle Graph في التطبيق نفسه.

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

    يمكن للمطورين وزملائهم في العمل على حد سواء الاستفادة من تطبيقات السحابة الأصلية المصممة خصيصًا لزيادة سهولة الاستخدام وقابلية التوسع والكفاءة إلى أقصى حد. تعرَّف على المزيد وتحقق من 10 طرق إضافية تتحسن بها الخدمة السحابية.

    الأسئلة الشائعة حول MongoDB

    ما الفَرق بين SQL وMongoDB؟

    تحفظ MongoDB البيانات غير المُهيكلة، وهو أمر غير مناسب للغة استعلام الهيكلية (SQL).

    هل MongoDB لغة واجهة خلفية؟

    لا، لكن يمكن استخدامها باعتبارها جزء من تطبيق ويب للواجهة الخلفية.

    هل MongoDB لغة أم إطار عمل؟

    إنه نظام لإدارة قواعد البيانات يستخدم بيانات غير مُهيكلة مُخزنة في المستندات بدلاً من الجداول.