Query on Month of Date in Mongo

Find the Employee based on month of date using $month 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-04-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-01-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-02-03T18:30:00.000+0000")
}
]


Approach

Query: To  find employee having joining month after 5.

db.Employee_Detail.aggregate([
    {$match:{"Emp_Salary":{$gte:25000}}},
    {$project:{"Emp_Name":1,"Emp_Age":1,"monthOfJoining":{"$month":"$Emp_Joining_Date"}}},
    {$match:{"monthOfJoining":{$gte:6}}}
    ]);


Output: 
[
 { 
        "_id" : ObjectId("60179dd62381fc69d5f1c5a0")
        "Emp_Name" : "Jatin"
        "Emp_Age" : NumberInt(24)
        "monthOfJoining" : NumberInt(7)
    }
    
    { 
        "_id" : ObjectId("60179dd62381fc69d5f1c5a2")
        "Emp_Name" : "Manu"
        "Emp_Age" : NumberInt(21)
        "monthOfJoining" : NumberInt(7)
    }
]


No comments:

Post a Comment