MongoDB هي نظام لقواعد البيانات من فئة ما يُسمى NoSQL أو بوصف أدق "Non-relational database management system" وهو يختلف عن قواعد البيانات التقليدية التي تعتمد لغات مثل SQL، فـMongoDB تعتبر Schema-less أي ليس هناك نمط محدد للبيانات، وإنما يمكن أن يحوي مستند ما (وهو ما يقابل الجدول في SQL DBs) عناصر كل منها له حقول مختلفة (كالأعمدة)، وعلى هذا يمكن تخزين مدونة بالطريقة التالية:
{
title: 'something',
comments: [{body: '', date: ''}, {...}]
}
ويمكن للحقل أن يقبل قيماً بأنواع مشابهة لما يمكن تخزينه في JSON كالمصفوفات والأرقام وأنواع أكثر (كالتاريخ، وبيانات binary...)...
الأمر الرائع في MongoDB هو وجود drivers لاستخدامها في العديد من لغات البرمجة والبيئات مثل Node وPHP وRuby وPython، وفي Node (على الأقل، فلم أجرب لغات أخرى) فهي تعمل بطريقة لا متزامنة (asynchronous) بمعنى أن تنفيذ الشفرة البرمجية لا يتوقف عند طلب محتوى من قاعدة البيانات بل يتابع، ثم عند انتهاء جلب الاستعلام تنفذ الوظيفة التي مررت إلى الأمر عند كتابته.
يبدو لي مستقبل MongoDB واعداً، لكن ما مدى قابليتها للتوسع وما مدى ضخامة التطبيقات التي يمكن استخدامها فيها؟ وهل تعطي أداءًا مماثلاً لقواعد البيانات التقليدية؟
التعليقات