خطّ المعالجة (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 }
])
🎯 التالي: التجميع المتقدّم.