احصل على تعليق لاستعلامات وعمليات MongoDB بمساعدة هذا الدليل المفيد.

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

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

1. إنشاء أو تبديل قواعد البيانات

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

use db_name

بينما يقوم الأمر أعلاه بإنشاء قاعدة بيانات جديدة ، يمكنك استخدامها للتبديل إلى قاعدة بيانات موجودة دون إنشاء قاعدة بيانات جديدة من البداية.

2. إسقاط قاعدة البيانات

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

instagram viewer
use db_name
db.dropDatabase()

3. إنشاء مجموعة

لإنشاء مجموعة ، قم بالتبديل إلى قاعدة البيانات الهدف. استخدم ال createCollection () كلمة رئيسية لإنشاء مجموعة MongoDB جديدة:

db.createCollection("collection_name")

يستبدل collection_name مع اسم المجموعة التي اخترتها.

4. أدخل المستند في مجموعة

أثناء إرسال البيانات إلى مجموعة ، يمكنك إدراج مستند واحد أو مجموعة من المستندات.

لإدراج مستند واحد:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

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

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

لإدراج العديد من المستندات في وقت واحد ، مع وجود معرّفات منفصلة لكل منها ، استخدم ملحق إدراج العديد الكلمة الأساسية:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. احصل على جميع المستندات من مجموعة

يمكنك الاستعلام عن جميع المستندات من مجموعة باستخدام امتداد يجد() الكلمة الأساسية:

db.collection_name.find()

ما سبق يُرجع جميع المستندات الموجودة داخل المجموعة المحددة:

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

db.collection_name.find().limit(2)

6. تصفية المستندات في مجموعة

توجد طرق عديدة لتصفية المستندات في MongoDB. ضع في اعتبارك البيانات التالية ، على سبيل المثال:

إذا كنت تقوم بالاستعلام عن حقل معين فقط في المستند ، فاستخدم يجد طريقة:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

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

يمكنك أيضًا تصفية مجموعة من خلال عامل رقمي. لنفترض أنك تريد الحصول على أسماء جميع المستخدمين الذين تزيد أعمارهم عن 21 عامًا ، فاستخدم جي تي المشغل أو العامل:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

يبدو الإخراج كما يلي:

حاول الاستبدال يجد مع findOne لنرى ماذا سيحدث. ومع ذلك ، هناك العديد من كلمات التصفية الأخرى:

  • لتر: جميع القيم الأقل من القيمة المحددة.
  • gte دولار: قيم تساوي أو تزيد عن القيمة المحددة.
  • دولار لت: القيم التي تقل عن القيمة المحددة أو تساويها.
  • مكافئ دولار: الحصول على جميع القيم مساوية للقيمة المحددة.
  • $ ne: جميع القيم لا تساوي القيمة المحددة.
  • $ في: استخدم هذا عند الاستعلام بناءً على مصفوفة. يحصل على جميع القيم المطابقة لأي من العناصر الموجودة في المصفوفة. ال تسعة دولارات الكلمة الرئيسية تفعل العكس.

7. فرز الاستعلامات

يساعد الفرز في ترتيب الاستعلام بترتيب معين. يمكنك الفرز بترتيب تنازلي أو تصاعدي. ضع في اعتبارك أن الفرز يتطلب مرجعًا رقميًا.

على سبيل المثال ، للفرز بترتيب تصاعدي:

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

لفرز الاستعلام أعلاه بترتيب تنازلي ، استبدل "1" بـ "-1".

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. قم بتحديث مستند

تتطلب تحديثات MongoDB عوامل التشغيل الذرية لتحديد الطريقة التي تريد إجراء التحديث بها. فيما يلي قائمة بالعوامل الذرية الشائعة الاستخدام التي يمكنك إقرانها باستعلام تحديث:

  • مجموعة $: أضف حقلاً جديدًا أو قم بتغيير حقل موجود.
  • دفع $: إدراج عنصر جديد في المصفوفة. قم بإقرانها بملف $ لكل منهما عامل التشغيل لإدراج العديد من العناصر مرة واحدة.
  • سحب $: إزالة عنصر من المصفوفة. استخدمه مع $ في لإزالة العديد من العناصر دفعة واحدة.
  • غير محدد: إزالة حقل من المستند.

لتحديث مستند وإضافة حقل جديد ، على سبيل المثال:

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

يقوم ما سبق بتحديث المستند المحدد كما هو موضح:

تعد إزالة حقل البريد الإلكتروني أمرًا سهلاً مع ملف غير محدد المشغل أو العامل:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

ضع في اعتبارك البيانات النموذجية التالية:

يمكنك إدراج عنصر في القائمة أغراض مجال الصفيف باستخدام دفع $ المشغل أو العامل:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

ها هو الناتج:

استخدم ال $ لكل منهما عامل التشغيل لإدراج العديد من العناصر مرة واحدة:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

ها هو الناتج:

كما ذكرنا ، فإن سحب $ يزيل عامل التشغيل عنصرًا من مصفوفة:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

تبدو البيانات المحدثة كما يلي:

تشمل $ في كلمة أساسية لإزالة العديد من العناصر في مصفوفة دفعة واحدة:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. حذف مستند أو حقل

ال حذف واحد أو حذف العديد تقوم الكلمة الأساسية بحذف مستند من مجموعة. يستخدم حذف واحد لإزالة مستند بناءً على حقل محدد:

db.collection_name.deleteOne({"Name":"IDNoble"})

إذا كنت تريد حذف العديد من المستندات ذات المفاتيح المشتركة ، فاستخدم حذف العديد بدلاً من. الاستعلام أدناه يحذف جميع المستندات التي تحتوي على شطرنج كما بهم الإعجابات.

db.collection.deleteMany({"Likes":"Chess"})

10. عملية الفهرسة

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

تشبه فهرسة MongoDB الطريقة التي تستخدمها استخدام الفهارس لتحسين استعلامات SQL. على سبيل المثال ، لإنشاء فهرس تصاعدي على اسم مجال:

db.collection.createIndex({"Name":1})

لسرد فهارسك:

db.collection.getIndexes()

ما ورد أعلاه مجرد ديباجة. هناك عدة طرق أخرى لـ إنشاء فهرس في MongoDB.

11. تجميع

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

ضع في اعتبارك بيانات المبيعات التالية ، على سبيل المثال:

باستخدام تجميع MongoDB ، يمكنك حساب وتخزين العدد الإجمالي للمنتجات المباعة لكل فئة على النحو التالي:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

يُرجع الاستعلام أعلاه ما يلي:

استعلامات Master MongoDB

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

ومع ذلك ، قد يكون هناك بعض التناقضات في البنية الأساسية. على سبيل المثال ، في حين أن بعض لغات البرمجة مثل Python تتعرف على حالات الثعابين ، فإن البعض الآخر ، بما في ذلك JavaScript ، يستخدم حالة الجمل. تأكد من البحث عن ما يناسب التكنولوجيا التي اخترتها.