$topN (مُراكم أعلى N)

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

$topN (مُراكم أعلى N)

$topN مُراكم يُرجع N مستندات أعلى (أو قيم تعبير) لكل مجموعة وفق ترتيب فرز محدد، متاح منذ MongoDB 5.2. يأتي الترتيب من sortBy الخاص بـ $group؛ ويمكن أن يكون n ثابتًا أو تعبيرًا. رائع للوحات المتصدرين وقوائم الأعلى لكل مجموعة.

الفئةالتراكميات
إصدار MongoDB5.2+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $group: { _id: <key>, topN: { $topN: { sortBy: { <field>: <1 or -1> }, output: <expression>, n: <number> } } } }

القيمة المرجعة:مصفوفة بأعلى N من القيم أو المستندات لكل مجموعة

▶ مثال

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

// $topN: أفضل 3 أسماء لكل صف
db.scores.aggregate([
  { $group: { _id: '$class', top3: { $topN: { sortBy: { score: -1 }, output: '$name', n: 3 } } } }
])

المخرجات:

{ "_id": "A", "top3": ["Alice", "Bob", "Carol"] }

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qهل يمكن أن تكون n في $topN متغيرًا؟
Aنعم، يمكن أن تكون n تعبيرًا يشير إلى حقل، مثل '$limitCount'.
Qكيف يختلف $topN عن $sort مع $limit؟
Aيأخذ $topN الأعلى N داخل كل مجموعة؛ بينما يأخذ $sort مع $limit الأعلى N من التدفق بأكمله.
Qكيف تُعالج التعادلات؟
Aالعناصر المتعادلة غير مرتبة؛ استخدم مفتاح فرز فريدًا للاستقرار.
Web-Tutorial.com

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

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

100%