عمليات CRUD في MongoDB: دروس مع أمثلة

نشرت: 2020-02-05

مع التطور المستمر للويب ، نرى الآن كيف تظهر MongoDB وقواعد بيانات كائنات المستندات الأخرى كبدائل لقواعد البيانات التقليدية القائمة على SQL. هناك العديد من المزايا التي تتمتع بها قواعد بيانات كائنات المستندات هذه مقارنة بقواعد بيانات SQL ، ومن أبرز هذه المزايا قابلية التوسع والرشاقة.

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

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

جدول المحتويات

قائمة عمليات CRUD في MongoDB

1. إنشاء المستندات

كيف يتم إنشاء الكائنات باستخدام MongoDB؟ تستخدم MongoDB BSON - تمثيل ثنائي لـ JSON - لتخزينها. لذلك ، من السهل جدًا فهم أن الأساليب المستخدمة لإجراء عمليات مختلفة في قاعدة البيانات لها علاقة أو أخرى بجافا سكريبت. دعونا ننشئ مجموعة المستخدمين والمستخدمين. من المهم أيضًا ملاحظة أن الجداول في SQL تعادل المجموعات في MongoDB.
db.users.save ({الاسم: "مايك" ، الوظيفة: "دكتور" ، البريد الإلكتروني: "[email protected]"})
يستخدم هذا المثال MongoDB save () لحفظ البيانات في المجموعة.

2. إدخال المستندات

  • إدراج الدُفعات : تسمح هذه الوظيفة بإضافة قائمة بالوثائق في نفس الوقت إلى قاعدة البيانات. يمكن أن تحتوي الدفعة ، في وقت معين ، على مئات أو حتى آلاف المستندات. مع القدرة على إدراج مستندات متعددة ، تعمل هذه الوظيفة بشكل أسرع بكثير من وظائف الإدراج الأخرى. لا يحتاج إدخال الدُفعات إلى رفع الطلبات الفردية لمئات أو آلاف المستندات. يعمل بدلاً من ذلك كطلب بروتوكول تحكم بالإرسال (TCP) واحد. دائمًا ما يكون الوقت المستغرق أثناء عمليات الإدراج أقل بكثير نظرًا لعدم وجود نشاط لمعالجة الرأس. كل مستند يجب إدراجه يحمل رأسًا ينقل إلى قاعدة البيانات العملية التي يجب تنفيذها. في الغالب ، يتم استخدام إدخالات الدُفعات للاحتفاظ ببيانات أجهزة الاستشعار وسجلات الخادم.
  • Mongoimport : Mongoimport هي أداة سطر أوامر تُستخدم بدلاً من إدخال الدُفعات إلى البيانات الأساسية من MySQL أو Oracle أو أي نظام آخر لإدارة قواعد البيانات العلائقية (RDBMS). هناك أوقات قد يُطلب فيها إجراء تغييرات على المستندات - إضافة معرف مخصص - قبل تخزينه على MongoDB. الشيء المهم الآخر الذي يجب أن تعرفه هو أن MongoDB لا يقبل إلا الرسائل التي يصل حجمها إلى 16 ميجا بايت. لذلك ، يضع إدراج الدُفعات قيودًا على عدد الرسائل التي يمكن أن تحتوي عليها.
  • إدراج مجمّع غير مرتب : في هذه الوظيفة ، تكتب MongoDB العمليات دون اتباع أي ترتيب. في حالة حدوث خطأ ، سيستمر في عمليات الكتابة التي تُترك دون أي انقطاع. تشكل MongoDB مجموعة من العمليات غير المرتبة أثناء أدائها. يمكن لـ MongoDB أيضًا السعي لتحسين الأداء عن طريق إعادة ترتيب العمليات المدرجة قبل التنفيذ. لذلك ، لا يتعين على التطبيقات الاعتماد على تسلسل عند النظر في هذه الوظيفة للإدراج بالجملة. يمكن استخدام Bulk.getOperations () لمعرفة كيفية تجميع MongoDB لمجموعة من العمليات ثم تنفيذها. يمكن استخدام هذا الأمر لإضافة ثلاث مستندات في نفس الوقت ولكن بدون أي ترتيب.
  • الإدخال المجمع المطلوب: في هذه الوظيفة ، يتبع MongoDB تسلسلًا عند كتابة العمليات. يؤدي حدوث خطأ أثناء أي عملية كتابة إلى عدم قيام MongoDB بإجراء عمليات كتابة أخرى. يتم تجميع العمليات المرتبة مع الأخذ في الاعتبار استمراريتها ونوعها. يتم تجميع العمليات المرتبة المجاورة التي تنتمي إلى نفس الفئة.

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

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

3. استرجاع / قراءة الوثائق

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

يمكن تعديل الاستعلامات لوضع التجاوزات والحدود وترتيب الأوامر.

دعونا الآن نناقش كيف يتم تحديد شرط المساواة. استخدم الأمر findOne () لتعريف أول سجل للمستند. لعرض النتائج بالتنسيق الصحيح ، يمكنك استخدام الطريقة الجميلة.

استخدم الاستعلام db.items.find (). pretty () لتحديد جميع المستندات المدرجة في مجموعة وعرضها جميعًا بتنسيق موحد. يمكنك استخدام استعلام فارغ لاختيار جميع المستندات - db.items.find ({}) - يحتوي هذا الاستعلام على عبارة استعلام فارغة في النهاية - لذلك سيحدد جميع المستندات المدرجة في المجموعة.

عدم تحديد طريقة البحث مع مستند الاستعلام واستخدام استعلام فارغ سيؤدي إلى نفس النتيجة. لذلك ، فإن استعلامات db.items.find ({}) و db.items.find () متكافئة من حيث النتيجة المستخدمة من أجلها.

يمكنك معالجة الاستعلام واستخدام طريقة مؤشر الاستعلام بينما تتيح لك طريقة العد معرفة عدد المستندات في المجموعة التي تطابق استعلامك. db.items.count ()

4. تحديث المستندات

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

db.users.update ({الاسم: "مايك"} ، {العمر: 32})

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

db.users.update ({name: “Mike”}، {$ set: {age: 28}})

لن يؤدي هذا إلى الكتابة فوق أي شيء. ستحتفظ بجميع المعلومات الموجودة في المستند. سيتم تحديث قيمة العمر فقط.

5. إزالة المستندات

استخدم طريقة الإزالة - db.courses.remove () - لإزالة المستندات من مجموعة. سيؤدي هذا الأمر إلى إزالة جميع المستندات من المجموعة المحددة. ما لن يزيله هو الفهارس والمجموعة نفسها. في بعض الأحيان ، يمكن لأمر الإزالة أن يأخذ استعلامًا كمعامل. إذا كنت تريد إزالة المستندات التي تطابق المعايير المذكورة في الاستعلام ، فاستخدم الأمر db.items.remove ({“item”: “Pen”).

استخدم الأمر db.items.remove ({”item”: “Bag}، 1) لإزالة مستند واحد فقط من مجموعة. لإزالة جميع المستندات والمجموعات والفهارس ، استخدم الأمر db.courses.drop () (طريقة الإسقاط).

خاتمة

إذا كنت مهتمًا بمعرفة المزيد عن البيانات الضخمة ، فراجع دبلومة PG في تخصص تطوير البرمجيات في برنامج البيانات الضخمة المصمم للمهنيين العاملين ويوفر أكثر من 7 دراسات حالة ومشاريع ، ويغطي 14 لغة وأدوات برمجة ، وتدريب عملي عملي ورش العمل ، أكثر من 400 ساعة من التعلم الصارم والمساعدة في التوظيف مع الشركات الكبرى.

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

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

400+ ساعة من التعلم. 14 لغة وأدوات. حالة خريجي IIIT-B.
برنامج الشهادة المتقدم في البيانات الضخمة من معهد IIIT بنغالور