MongoDB $group In Hindi | group by In MongoDB In Hindi


पिछले topic में हमें aggregate() Method के बारे में पढ़ा था। और समझा कि Pipeline में कई stages होती हैं , जिनका use हम need के according करते हैं।

उन्ही stages में से एक है $group stage जो SQL के Group By Statement की तरह work करती है और कि काफी important है।

और इस topic में हम $group stage के बारे में details से समझेंगे।

What is $group In MongoDB ?

MongoDB में $group operator एक aggregation pipeline stage है जो documents की grouping में use होता है। जैसे कि SQL में GROUP BY clause काम करता है ठीक उसी तरह से $group MongoDB में होता है।

$group operator का use किसी एक field के आधार पर documents को group करने और उस group के लिए various aggregation operations (जैसे sum, average, count, etc.) apply करने के लिए होता है।

अब चूंकि $group एक stage है तो इसे aggregate() Method के अंदर ही use किया जाता है।

MongoDB $group Syntax

{
  $group: {
    _id : grouping_key ,
    aggregation_operation : field_expression 
  }
} 

Syntax Explanation

  • _id : ये field group key को represent करता है जिसके basis पर documents group किये जायेंगे। इसमें कोइन भी field का हो सकता है या फिर एक document की कुछ specific values भी हो सकती हैं।

  • <aggregation_operation> : यह aggregation operation को represent करता है , जैसे कि $sum, $avg, $first, $last, $max, $min, $addToSet, और $push.

  • <field_expression> : ये field expression है जिसकी value aggregation operation के लिए use होता है।

अब $group stage के कुछ examples देख लेते हैं।

MongoDB $group With $sum

Suppose , आपके पास एक products collection है। जिसमे category के साथ product detail और आपको हर category के products की total quantity चाहिए , इसके लिए आप $group operator का कुछ इस तरह से use करेंगे।

db.products.aggregate([
  {
    $group: {
      _id: "$category",
      totalQuantity : { $sum: "$quantity" }
    }
  }
])

query में , _id field category के basis पर documents को group करेगा और totalQuantity field में हर category की total quantity store होगी।

और इसकी SQL query कुछ इस तरह से होगी।

SELECT category, SUM(quantity) AS totalQuantity
FROM products
GROUP BY category;

MongoDB $group With $avg

अब अगर आप एक company के employees collection में से query कर रहे हैं। आप हर department की average salary fetch करना चाहते हैं , जिसके लिए query कुछ इस तरह से होगी।

db.employees.aggregate([
  {
    $group: {
      _id: "$department",
      averageSalary: { $avg: "$salary" }
    }
  }
])

इसमेंमें , _id field department के basis पर documents को group करेगा और averageSalary field में हर department की average salary store होगी।

SQL equivalent query

SELECT department, AVG(salary) AS averageSalary
FROM employees
GROUP BY department;

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook