पाठ 14 / 23

एग्रीगेशन का उदाहरण

असली pipeline बनाएँ जो completed orders filter करे, category के अनुसार group करे और totals sort करे।

प्रति कैटेगरी कुल बिक्री

पूर्ण ऑर्डर को फ़िल्टर करें, उन्हें कैटेगरी के अनुसार समूहित कर राशि जोड़ें, फिर सबसे अधिक को पहले क्रम में रखें।

db.orders.aggregate([
  { $match: { status: "completed" } },
  { $group: { _id: "$category", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } }
])

Output:

[
  { _id: "electronics", total: 48500 },
  { _id: "books", total: 9200 }
]

पाइपलाइन को पढ़ना

$group के अंदर _id समूहीकरण की key है — यहाँ हर आउटपुट डॉक्यूमेंट एक category को उसकी जोड़ी गई amount के साथ दर्शाता है।

त्वरित जाँच: $group चरण क्या करता है?

  • अवांछित डॉक्यूमेंट को फ़िल्टर करता है
  • किसी key के आधार पर डॉक्यूमेंट को एकत्र करता है, sum जैसे मान निकालता है
  • डॉक्यूमेंट को आरोही क्रम में सॉर्ट करता है
  • Field पर index बनाता है
Answer

किसी key के आधार पर डॉक्यूमेंट को एकत्र करता है, sum जैसे मान निकालता है — $group डॉक्यूमेंट को _id एक्सप्रेशन के अनुसार बाँटता है और हर बकेट के लिए $sum, $avg जैसे accumulator निकालता है।