تخطَّ إلى المحتوى

🍃 شرح MongoDB

التجميع (Aggregation)

الدرس 14 من 25· ⏱ 1 دقائق قراءة

خطّ المعالجة (Pipeline)

سلسلة مراحل، يمرّر كل منها نتائجه للتالية:

db.orders.aggregate([
  { $match: { status: "مكتمل" } },        // تصفية
  { $group: { _id: "$customer", total: { $sum: "$amount" } } },  // تجميع
  { $sort: { total: -1 } }                // ترتيب
])

$match — التصفية

{ $match: { age: { $gte: 18 } } }

$group — التجميع والإحصاء

{ $group: {
    _id: "$city",                  // التجميع حسب المدينة
    count: { $sum: 1 },            // العدد
    avgAge: { $avg: "$age" },      // المتوسّط
    maxAge: { $max: "$age" }
} }

$sort و $limit

{ $sort: { count: -1 } },
{ $limit: 5 }

مثال كامل: أكثر 3 مدن

db.users.aggregate([
  { $group: { _id: "$city", users: { $sum: 1 } } },
  { $sort: { users: -1 } },
  { $limit: 3 }
])

🎯 التالي: التجميع المتقدّم.

هل كان هذا الدرس مفيدًا؟