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

🍃 شرح MongoDB

التجميع المتقدّم

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

$project — تشكيل المخرجات

{ $project: {
    name: 1,
    yearBorn: { $subtract: [2026, "$age"] },
    _id: 0
} }

$unwind — تفكيك المصفوفات

يحوّل كل عنصر في مصفوفة إلى مستند منفصل:

db.orders.aggregate([
  { $unwind: "$items" },
  { $group: { _id: "$items.product", sold: { $sum: "$items.qty" } } }
])

$lookup — الربط (Join)

يربط مجموعتين (يشبه JOIN في SQL):

db.orders.aggregate([
  { $lookup: {
      from: "users",            // المجموعة الأخرى
      localField: "userId",     // الحقل هنا
      foreignField: "_id",      // الحقل هناك
      as: "user"                // اسم النتيجة
  } }
])

مراحل أخرى مفيدة

  • $count لعدّ النتائج.
  • $addFields لإضافة حقول محسوبة.
  • $skip و$limit للترقيم.

💡 إطار التجميع قويّ جدًّا لإعداد التقارير وتحليل البيانات داخل MongoDB.

🎯 التالي: نمذجة البيانات.

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