الخطوة الأولى في استخدام MongoDB هي فهم المفاهيم الأساسية لـ MongoDB ونموذج البيانات (هيكل البيانات)، ومعرفة كيفية تخزين البيانات. في الواقع، MongoDB مشابه جدًا لـ MySQL، لذلك لن يواجه كل شخص يعرف MySQL أي صعوبة في تعلم MongoDB.

المفاهيم الأساسية لـ MongoDB

قاعدة البيانات

قاعدة بيانات MongoDB هي نفس قاعدة بيانات MySQL.

مجموعة بيانات (Collection)

تشير مجموعة بيانات MongoDB إلى مجموعة من بيانات المستند، مشابهة لمفهوم الجدول في MySQL.

المستند (Document)

المستند في MongoDB، مشابه لصف البيانات في جدول MySQL، وهو بيانات منظمة بنية JSON تتكون من حقول متعددة، مما يجعل هيكل المستند في MongoDB مرنًا للغاية.

الحقل (Field)

حقل المستند في MongoDB مشابه لمفهوم الحقل في جدول MySQL، يمثل البيانات المحددة التي يتم تخزينها، وكل حقل له نوع بياناته الخاص.

الفهرس (Index)

الفهرس في MongoDB مشابه لفهرس MySQL، وذلك لتحسين كفاءة الاستعلام.

التجميع (Aggregation)

مفهوم تجميع MongoDB مشابه للتحليل التجميعي للمجموعة/العد/المجموع في MySQL، ويستخدم لتحليل البيانات الإحصائية.

مقارنة المفاهيم بين MongoDB و MySQL

MySQL MongoDB
قاعدة البيانات قاعدة بيانات
جدول مجموعة بيانات (Collection)
صف مستند (Document)
عمود حقل المستند
فهرس فهرس
التجميع (مثل: group by) تجميع

بشكل أساسي، يمكن تطابق مفاهيم MongoDB مع MySQL، لذلك تعتبر MongoDB النظام الأشبه بقواعد البيانات العلاقية (NoSQL).

بيانات المستند في MongoDB

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

مثال على بيانات المستند في MongoDB:

{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Jane",
  "lastname": "Wu",
  "address": {
    "street": "1 Circle Rd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90404"
  },
  "hobbies": ["surfing", "coding"]
}

يمكن أن يكون أي هيكل JSON متداخل بشكل تعسفي، شيء لا يمكن أن تحققه هياكل جداول MySQL. يعمل الحقل "_id" كمفتاح أساسي للمستند، وإذا لم تحدد قيمة محددة، سوف تقوم MongoDB بتوليد قيمة فريدة عشوائية.

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

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