$sortByCount (الفرز حسب العدد)
آخر تحديث: 2026-10-09
$sortByCount (الفرز حسب العدد)
$sortByCount اختصار لـ $group مع $sort: يجمع حسب قيمة تعبير، ويعد المستندات لكل مجموعة، ويصدر { _id: value, count: N } مرتبًا حسب العدد تنازليًا. مثالي لتكرار الكلمات وتصنيفات الفئات. مكافئ لـ $group مع $sum: 1 متبوعًا بـ $sort تنازليًا على العدد.
| الفئة | المراحل الأساسية |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $sortByCount: <expression> }
⚙️ المعلمات
| تعبير التجميع | تعبير يحدد مفتاح التجميع؛ مرجع حقل أو تعبير محسوب. |
|---|
القيمة المرجعة:تدفق مستندات { _id, count } مرتَّب حسب count تنازليًا
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $sortByCount: عد التقييمات حسب الدرجة
db.reviews.aggregate([
{ $sortByCount: '$rating' }
])
المخرجات:
{ "_id": 5, "count": 42 }
{ "_id": 4, "count": 31 }
📌 ملاحظات
- المخرج ثابت على الحقلين _id وcount
- النتائج مرتبة حسب العدد تنازليًا
- حقل المصفوفة يجمع حسب المصفوفة كاملة؛ فكك بـ $unwind أولًا للعد لكل عنصر
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين $sortByCount و $group؟
A$sortByCount اختصار لـ $group مع $sort، ثابت على مخرج _id/count مرتب حسب العدد تنازليًا.
Qهل يمكن ترتيب النتيجة تصاعديًا؟
Aليس مباشرة؛ اكتب $group عاديًا مع $sort عندما تحتاج ترتيبًا آخر.
Qهل يمكنه التجميع حسب حقول متعددة؟
Aمرر تعبير مستند يشير إلى عدة حقول كمفتاح التجميع.