113- كورس لغة بايثون Python MongoDB شرح – MongoDB Sort

شرح مفصل لـ MongoDB Sort في Python

مقدمة حول MongoDB واستخدامها مع Python

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

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

كيفية استخدام MongoDB Sort في Python

يمكن استخدام الدالة sort في PyMongo لترتيب المستندات المسترجعة من قاعدة البيانات. هذه الدالة تقبل معاملين، الأول هو اسم الحقل الذي تريد الفرز بناءً عليه، والثاني هو نوع الترتيب (تصاعدي أو تنازلي). يتم استخدام pymongo.ASCENDING للفرز التصاعدي وpymongo.DESCENDING للفرز التنازلي. دعونا نلقي نظرة على بعض الأمثلة العملية.

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

import pymongo

# الاتصال بقاعدة البيانات
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]

لنفرض أن لدينا مجموعة تحتوي على مستندات تمثل بيانات طلاب، ونريد فرز هؤلاء الطلاب بناءً على أعمارهم بشكل تصاعدي:

# الفرز بناءً على العمر بشكل تصاعدي
students_sorted_by_age_asc = collection.find().sort("age", pymongo.ASCENDING)
for student in students_sorted_by_age_asc:
    print(student)

إذا أردنا الآن فرز نفس البيانات ولكن بشكل تنازلي، يمكننا ببساطة تغيير نوع الفرز إلى pymongo.DESCENDING:

# الفرز بناءً على العمر بشكل تنازلي
students_sorted_by_age_desc = collection.find().sort("age", pymongo.DESCENDING)
for student in students_sorted_by_age_desc:
    print(student)

استخدام الفرز مع شروط أخرى

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

# البحث والفرز بناءً على شروط محددة
filtered_and_sorted_students = collection.find({"age": {"$gt": 20}}).sort("name", pymongo.ASCENDING)
for student in filtered_and_sorted_students:
    print(student)

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