$sortArray (فرز العناصر داخل المصفوفة)

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

$sortArray (فرز العناصر داخل المصفوفة)

يفرز $sortArray العناصر داخل مصفوفة، وهو جديد في MongoDB 5.2. تستخدم مصفوفات القيم القياسية 1 (تصاعدي) أو -1 (تنازلي)؛ وتحدد مصفوفات الكائنات مفاتيح الفرز بـ { field: 1/-1 } أو بصيغة المصفوفة [ [ 'field', 1 ] ] للفرز متعدد المفاتيح. الاستخدامات النموذجية: ترتيب التعليقات حسب الوقت تنازليًا أو المنتجات حسب السعر تصاعديًا قبل العرض. يُرجع مصفوفة جديدة دون تعديل المصدر؛ وكائن sortBy الفارغ يُسبب خطأً.

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

📝 الصيغة

{ $sortArray: { input: <array>, sortBy: <sortSpec> } }

⚙️ المعلمات

inputالمصفوفة المراد ترتيبها.
sortByمواصفة الترتيب: ‏1/-1 للمصفوفات القياسية؛ و{ field: 1/-1 } أو [ [ 'field', 1 ] ] لمصفوفات الكائنات.

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

▶ مثال

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

// $sortArray: فرز العناصر حسب السعر تصاعديًا
db.orders.aggregate([
  { $project: {
      sorted: { $sortArray: { input: '$items', sortBy: { price: 1 } } }
  } }
])

المخرجات:

{ '_id': 1, 'sorted': [ { 'sku': 'B', 'price': 5 }, { 'sku': 'A', 'price': 9 } ] }

📌 ملاحظات

مزيد من الحالات العملية قريبًا.

📚 دروس ذات صلة

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

Qهل يدعم $sortArray الفرز متعدد الحقول؟
Aنعم — استخدم الصيغة [ [ 'field1', 1 ], [ 'field2', -1 ] ].
Qهل يعمل على MongoDB الأقدم؟
Aجديد في 5.2؛ وفي الإصدارات الأقدم فكّك بـ $unwind، رتّب بـ $sort، ثم أعد التجميع.
Qأين تُرتَّب العناصر التي ينقصها المفتاح؟
Aتُرتَّب في نهاية المصفوفة.
Web-Tutorial.com

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

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

100%