$group Group Operation in Mongo

Grouping the Employee using $group operator under Employee_Detail collection.

Example:

[
{
"_id" : ObjectId("60179dd62381fc69d5f1c5a0"),
"Emp_Name" : "Jatin",
"Emp_Age" : NumberInt(24),
"Emp_Salary" : NumberInt(34000),
"Emp_Grade" : "C",
"Emp_Joining_Date" : ISODate("2020-07-03T18:30:00.000+0000")
}
{
"_id" : ObjectId("60179dd62381fc69d5f1c5a1"),
"Emp_Name" : "Terens",
"Emp_Age" : NumberInt(27),
"Emp_Salary" : NumberInt(34000),
"Emp_Grade" : "D",
"Emp_Joining_Date" : ISODate("2020-07-03T18:30:00.000+0000")
}
{
"_id" : ObjectId("60179dd62381fc69d5f1c5a2"),
"Emp_Name" : "Manu",
"Emp_Age" : NumberInt(21),
"Emp_Salary" : NumberInt(34000),
"Emp_Grade" : "A",
"Emp_Joining_Date" : ISODate("2020-07-03T18:30:00.000+0000")
}
{
"_id" : ObjectId("60179dd62381fc69d5f1c5a3"),
"Emp_Name" : "Sagun",
"Emp_Age" : NumberInt(20),
"Emp_Salary" : NumberInt(34000),
"Emp_Grade" : "B",
"Emp_Joining_Date" : ISODate("2020-07-03T18:30:00.000+0000")
}
{
"_id" : ObjectId("60179dd62381fc69d5f1c5a4"),
"Emp_Name" : "Pankaj",
"Emp_Age" : NumberInt(60),
"Emp_Salary" : NumberInt(34000),
"Emp_Grade" : "D",
"Emp_Joining_Date" : ISODate("2020-07-03T18:30:00.000+0000")
}
]


Approach

Query: To group employee based on one field. 

db.Employee_Detail.aggregate([
{"$group":{"_id":"$Emp_Grade","gradeWiseEmp":{"$push":{"Emp_Name":"$Emp_Name"}}}}
]);


Output: 
[
{
"_id": "D",
"gradeWiseEmp": [
{
"Emp_Name": "Terens"
},
{
"Emp_Name": "Pankaj"
}
]
},
{
"_id": "B",
"gradeWiseEmp": [
{
"Emp_Name": "Sagun"
}
]
},
{
"_id": "C",
"gradeWiseEmp": [
{
"Emp_Name": "Jatin"
}
]
},
{
"_id": "A",
"gradeWiseEmp": [
{
"Emp_Name": "Manu"
}
]
}
]


No comments:

Post a Comment