# एग्रीगेशन का उदाहरण — मोंगोडीबी

Source: https://www.geekswithgeeks.com/hi/mongodb/mongo-aggregation-example

> ऑर्डर को कैटेगरी सारांश में मैच, ग्रुप और सॉर्ट करें।

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

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

```javascript
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` के साथ दर्शाता है।

**Quiz:** $group चरण क्या करता है?

- [ ] अवांछित डॉक्यूमेंट को फ़िल्टर करता है
- [x] किसी key के आधार पर डॉक्यूमेंट को एकत्र करता है, sum जैसे मान निकालता है
- [ ] डॉक्यूमेंट को आरोही क्रम में सॉर्ट करता है

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