MongoDB में SQL के SELECT COUNT GROUP BY के समकक्ष कार्यक्षमता के लिए एग्रीगेशन फ्रेमवर्क का उपयोग करें।
उदाहरण से समझें
एक कलेक्शन बनाकर डॉक्यूमेंट इन्सर्ट करते हैं:
> db.countGroupByDemo.insertOne({"StudentId": 10, "StudentName": "John"});
> db.countGroupByDemo.insertOne({"StudentId": 10, "StudentName": "Carol"});
> db.countGroupByDemo.insertOne({"StudentId": 20, "StudentName": "Sam"});
> db.countGroupByDemo.insertOne({"StudentId": 30, "StudentName": "Mike"});
> db.countGroupByDemo.insertOne({"StudentId": 30, "StudentName": "David"});
> db.countGroupByDemo.insertOne({"StudentId": 10, "StudentName": "Maxwell"});
> db.countGroupByDemo.insertOne({"StudentId": 20, "StudentName": "Bob"});
सभी डॉक्यूमेंट देखने के लिए:
> db.countGroupByDemo.find().pretty();
आउटपुट:
{ "_id": ..., "StudentId": 10, "StudentName": "John" }
{ "_id": ..., "StudentId": 10, "StudentName": "Carol" }
{ "_id": ..., "StudentId": 20, "StudentName": "Sam" }
{ "_id": ..., "StudentId": 30, "StudentName": "Mike" }
{ "_id": ..., "StudentId": 30, "StudentName": "David" }
{ "_id": ..., "StudentId": 10, "StudentName": "Maxwell" }
{ "_id": ..., "StudentId": 20, "StudentName": "Bob" }
अब StudentId के आधार पर ग्रुप करके काउंट करने के लिए एग्रीगेशन क्वेरी:
> db.countGroupByDemo.aggregate([{$group: {_id: "$StudentId", counter: {$sum: 1}}}]);
आउटपुट:
{ "_id": 30, "counter": 2 }
{ "_id": 20, "counter": 2 }
{ "_id": 10, "counter": 3 }
यहां $group स्टेज StudentId के आधार पर ग्रुप बनाता है और $sum: 1 प्रत्येक ग्रुप के डॉक्यूमेंट गिनता है।