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