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

aggregate()

تشغيل خط تجميع (Pipeline) aggregate()

aggregate() تنفّذ سلسلة مراحل معالجة (pipeline) على المستندات، لبناء تقارير وتحويلات معقّدة داخل قاعدة البيانات.

المدخل الرئيسي لإطار التجميع (Aggregation Framework) — تمرَّر له مصفوفة من المراحل مثل $match و$group و$lookup، وتُطبَّق بالترتيب على المستندات. أقوى بكثير من find() للتقارير والإحصائيات لأنها تُنفَّذ داخل قاعدة البيانات مباشرة.

الصياغة

db.collection.aggregate([ <stage1>, <stage2>, ... ])

📄 مثال

db.orders.aggregate([
  { $match: { status: "مكتمل" } },
  { $group: { _id: "$customerId", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } },
  { $limit: 5 }
])

أهم المعاملات

المعاملالوظيفة
pipelineمصفوفة مراحل مثل $match، $group، $sort، $lookup

💡 نصائح عملية

  • ضع $match و$limit بأقرب وقت ممكن في بداية الـ pipeline لتقليل عدد المستندات في المراحل اللاحقة

⚠️ أخطاء شائعة

  • استخدام $match بعد $group لتصفية النتيجة النهائية بدل تصفية البيانات الخام أوّلًا — يهدر معالجة غير ضرورية

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار MONGODB الكامل بالعربي.

📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs