$sort (الفرز)

آخر تحديث: 2026-10-09

$sort (الفرز)

يرتب $sort مستندات خط الأنابيب حسب حقول محددة: 1 تصاعدي، -1 تنازلي، مع دعم الفرز متعدد الحقول. ضعه قرب النهاية، لأن المراحل الوسيطة قد تعيد ترتيب المستندات. للفرز بفهرس، ضع $match أولًا. الفرز الكبير يتجاوز حد الذاكرة الافتراضي 100MB ويفشل ما لم يُفعَّل allowDiskUse.

الفئةالمراحل الأساسية
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $sort: { <field1>: <1 or -1>, <field2>: <1 or -1> } }

⚙️ المعلمات

مفتاح الفرزأسماء الحقول مربوطة بـ 1 (تصاعدي) أو -1 (تنازلي)؛ وتُقارَن الحقول المتعددة بترتيب كتابتها.

القيمة المرجعة:تدفق مستندات مرتَّب

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $sort: أعلى درجة أولًا، والاسم تصاعديًا عند التعادل
db.scores.aggregate([
  { $sort: { score: -1, name: 1 } }
])

المخرجات:

{ "name": "Alice", "score": 98 }
{ "name": "Bob", "score": 92 }

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qكيف يتعامل $sort مع الحقول المتعددة؟
Aتُقارن الحقول بالترتيب المكتوب: أولًا بالحقل الأول، ثم بالثاني عند تعادل القيم.
Qهل يمكن لـ $sort استخدام فهرس؟
Aعندما يطابق مفتاح الفرز فهرسًا وكانت المرحلة أولًا أو تتبع $match، يتجنب الفهرس الفرز في الذاكرة.
Qماذا لو تجاوز $sort حد الذاكرة؟
Aمرر allowDiskUse: true في خيارات التجميع ليُفرّغ على القرص.
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%