تطوير الويب

MongoDB 8: NoSQL documentaire حديث للمطورين

5 دقائق للقراءة

ما هو MongoDB في صفحة واحدة

MongoDB قاعدة بيانات documentaire: تخزّن بنى JSON-like (تقنياً BSON، الصيغة الثنائية الموسَّعة لـ JSON) بدل جداول وأسطر SQL. وثيقة وحدة مستقلة: عميل، اسمه، عناوينه، تاريخه الحديث يمكن أن تتسع في نفس الوثيقة، تُقرَأ في طلب واحد بلا jointure. التماسك لا يُضمَن بصرامة schema جامد لـ SQL، بل بـ validation إعلانية عبر $jsonSchema، بالتطبيق ذاته، وبـ transactions ACID متعدّدة الوثائق المتاحة منذ MongoDB 4.0.

ثلاث خصائص للحفظ. Schema مرن: كل وثيقة لها حقولها الخاصة، ما يلغي migrations ALTER TABLE المكلّفة على أحجام كبيرة. فهرسة غنية: B-tree، composites، multikey على المصفوفات، partiels، TTL للانتهاء الآلي، text للبحث plein-texte، géospatiaux. Scaling أفقي أصلي: cluster sharded يُوزّع البيانات آلياً بين N عقد primary ويُعيد توجيه الطلبات عبر mongos.

إصدارات MongoDB في 2026

الإصدار الصدور نهاية الدعم الحالة
8.0 LTS 2 أكتوبر 2024 31 أكتوبر 2029 هدف الإنتاج الموصى به
8.3 Rapid 4 مايو 2026 31 أكتوبر 2029 Atlas Auto-Upgrade فقط
7.0 LTS 31 أغسطس 2023 31 أغسطس 2027 لا تزال مدعومة، للهجرة إلى 8.0
6.0 LTS 31 يوليو 2022 31 يوليو 2025 (انتهت) EOL — هجرة إلزامية

التوصية: ابدأ نشراً جديداً في MongoDB 8.0 LTS بلا تردّد. تحسينات 8.0 (bulk write متعدّد العالم، block processing time-series، query settings، $lookup في transactions sharded، per-CPU TCMalloc) جوهرية مقابل 7.0.

النظام البيئي MongoDB عملياً

  • MongoDB Community Edition: المحرّك open-source (رخصة SSPL)، قابل للتثبيت على Linux، Windows، macOS. مجاني، يشمل كل الميزات: replica sets، sharding، transactions، agrégations.
  • MongoDB Atlas: المنصة المُدارة الرسمية على AWS/GCP/Azure. خطة مجانية M0 (512 ميغا، cluster مشترك) ومدفوعة من M10 (~57 USD/شهر). تشمل النسخ المستمر، الرصد، Atlas Search، Atlas Vector Search.
  • MongoDB Compass: الواجهة الرسومية المجانية. ملاحة في collections، محرّر JSON، Aggregation Pipeline Builder بصرياً، schema analyzer.
  • mongosh: الـ shell الرسمي. يستبدل mongo shell القديم.
  • Drivers الرسمية: Node.js 7.x، PyMongo 4.x، Java، .NET، Go، Rust. Mongoose 9.x (نوفمبر 2025) ODM المهيمن JavaScript. Motor pendant async لـ PyMongo.

الحالات الثماني الملائمة

  1. Catalogues hétérogènes: 200 صنف منتجات بسمات مختلفة — لا جدول EAV مهمل، لا 200 جدول مفكّك. وثيقة لكل منتج بسماته الخاصة.
  2. ملفات مستخدمين غنية: بيانات شبه-مهيكلة مع تفضيلات، تاريخ، عناوين متعددة. كل شيء يُقرَأ في طلب واحد.
  3. أحداث وlogs مهيكلة: استيعاب ضخم، صيغ متنوعة، schema يتطوّر باستمرار.
  4. Time series وIoT: time series collections منذ 5.0؛ MongoDB 8.0 يُضيف block processing الذي يُسرّع agrégations $group بأكثر من 200%.
  5. Sessions وcaches قابلة للانتهاء: TTL indexes تطلق آلياً حذف الوثائق بعد N ثانية.
  6. محتويات تحريرية متغيرة: CMS حيث كل نوع محتوى له بنيته، والبنية تتطوّر مع كل release.
  7. Analytics آنية خفيفة: $facet ينفّذ N sous-pipelines متوازية على قراءة واحدة.
  8. Vector search لـ RAG: Atlas Vector Search يخزّن embeddings IA ويستجوب بـ similarity cosine.

دروس السلسلة

  1. تثبيت MongoDB 8 على Linux وإنشاء cluster Atlas
  2. نمذجة MongoDB: embedded مقابل referenced
  3. Aggregation Pipeline MongoDB: $match، $lookup، $facet، $merge
  4. Indexes MongoDB والأداء — قاعدة ESR
  5. Replica sets MongoDB والانتخابات
  6. Mongoose وPyMongo في الإنتاج
  7. متى نختار MongoDB بدل PostgreSQL: شبكة قرار 2026

الحدّ مع PostgreSQL باختصار

نقاش «MongoDB أم PostgreSQL؟» صار أدقّ منذ ظهور JSONB في PostgreSQL. لـ 80-90% من المشاريع الناشئة، الاختيار لا أثر تقني كبير له. القطيعة تقع على أربعة محاور:

  • تطوّر سريع لـ schema: MongoDB يتجنّب ALTER TABLE مكلفة
  • كتابات مستدامة فوق 10 000 ops/ثانية: MongoDB يستفيد من journal وsharding أصلي
  • Scaling أفقي حيوي: MongoDB shard أصلياً، PostgreSQL يتطلب امتداداً مثل Citus
  • Transactions معقّدة متعددة الجداول: PostgreSQL يبقى لا يُهزَم

Self-hosted أم Atlas: التحكيم بثلاثة معايير

الخبرة الداخلية: Self-hosted يتطلب كفاءة DBA أساسية. الحجم المستهدف: تحت 50 000 مستخدم، Atlas M0 مجاناً أو VPS بـ 5 يورو/شهر يكفي. بين 50 000 و500 000، Atlas M10/M20 (57-150 USD) منافس. فوق 500 000 أو 100 جيغا، self-hosted أرخص بـ 30-50%. التبعية لميزات Atlas: Atlas Search، Vector Search، Triggers متاحة فقط على Atlas.

الأمان والممارسات الأساسية

  • تفعيل المصادقة: security.authorization: enabled في /etc/mongod.conf غير قابل للتفاوض.
  • تقييد bindIp: اربط الخدمة فقط بـ 127.0.0.1 أو IP خاص للـ VPC. أبداً 0.0.0.0 بلا firewall صارم.
  • أدوار دنيا: المستخدم التطبيقي له فقط readWrite على قاعدته، لا readWriteAnyDatabase.
  • Validation schema: أنشئ كل collection بـ $jsonSchema validator.
  • نسخ احتياطي مُختبَر: mongodump يومي من secondary، احتفاظ 14 يوماً، استعادة فصلية إلزامية.

معماريات الإنتاج النمطية

Architecture 1 — Replica set 3 عقد على datacenter واحد: الإعداد المرجع. 3 VPS في نفس المنطقة، primary واثنان secondaries. تكلفة 15-45 يورو/شهر. قدرة عدة ملايين مستخدم نشط.

Architecture 2 — Replica set متعدد المناطق: 3 عقد في 3 مناطق (Frankfurt، Ireland، Stockholm). كمون كتابة يزيد 40-80 مللي ثانية، لكن خسارة منطقة كاملة تبدّل primary آلياً. للـ fintech، healthcare، SLA متعاقد.

Architecture 3 — Sharded cluster: فوق 500 جيغا أو 50 000 ops/ثانية. N shards (كل واحد replica set مستقلّ)، 3 config servers، mongos في الواجهة. اختيار shard key هيكلي: { created_at: 1 } يخلق hot shard؛ { user_id: "hashed" } يُوزّع.

أسئلة شائعة

أي إصدار في 2026؟ MongoDB 8.0 LTS لكل نشر جديد. مدعومة حتى أكتوبر 2029.

هل Atlas M0 قابل للإنتاج؟ لـ MVP بأقل من 500 مستخدم نشط و512 ميغا، نعم. للإنتاج جدّي، انتقل إلى M10 مخصّص (~57 USD/شهر).

هل يستبدل MongoDB SGBD علائقي بالكامل؟ نعم لـ 80% من الحالات. لا للمجالات حيث transactions متعددة الجداول مركزية (محاسبة، مدفوعات معقّدة).

هل transactions ACID متعددة الوثائق موثوقة؟ منذ MongoDB 4.0، فعّالة، لكن بحدّين: مدة قصوى 60 ثانية افتراضياً، وoverhead 30-60% على الكتابات المعنية.

هل نُفضّل دائماً embedded على referenced؟ لا. Embedded يكسب على القراءات المشتركة لكنه يخسر حين يجب استجواب الكيان الفرعي وحده، أو حين نموه غير محدود (حد 16 ميغا لكل وثيقة).

Atlas Vector Search أم pgvector؟ Atlas Vector Search إن كنت على Atlas. pgvector إن كنت على PostgreSQL. لأحجام ضخمة جداً، Pinecone أو Qdrant.

كم index لكل collection؟ MongoDB يسمح بـ 64 index. عملياً، 5-12 index جيد الاختيار يكفي لـ 95% من الطلبات.

Replica set أم sharding؟ Replica set أولاً، sharding لاحقاً. Replica set جيد التحجيم يصل 30 000-50 000 كتابة/ثانية.

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

أي حجم RAM لـ MongoDB self-hosted؟ القاعدة: working set (indexes نشطة + بيانات مقروءة بانتظام) يجب أن يسع في RAM. للأغلبية، 4-8 جيغا تكفي.

دليل المسار الكامل

هذا المقال هو الدليل المرجعي لمسار MongoDB 8.0 LTS. الدلائل العملية المرافقة تُغطّي كلّ خطوة من النمذجة إلى الإنتاج:

  1. تثبيت MongoDB 8 على Linux وإنشاء عنقود Atlas — Ubuntu 22.04/24.04، تأمين auth وbindIp، Atlas M0.
  2. نمذجة MongoDB embedded vs referenced — الأنماط الكلاسيكية مع extended reference، subset، computed، bucket.
  3. فهارس MongoDB والأداء — قاعدة ESR، فهارس مركّبة، فهارس جزئية وTTL.
  4. Aggregation Pipeline متقدّم$match، $group، $lookup، $facet، $merge وتحسين explain().
  5. Replica sets MongoDB والانتخابات — توفّر عالٍ، انتخابات Raft، readPreference والمعاملات.
  6. Mongoose وPyMongo في الإنتاج — connection pool، retryable writes، OpenTelemetry وPrometheus.
  7. متى نختار MongoDB بدل PostgreSQL — شبكة قرار 2026 بسبعة معايير وstack هجين.

Sponsoriser ce contenu

Cet emplacement est à vous

Position premium en fin d'article — c'est l'instant où les lecteurs sont le plus engagés. Réservez cet espace pour votre marque, votre formation ou votre offre.

Recevoir nos tarifs
Publicité