Query on Year of Date in mongo

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


Approach

Query: To  find employee having joining year 2020.

db.Employee_Detail.aggregate([
    {$match:{"Emp_Salary":{$gte:25000}}},
    {$project:{"Emp_Name":1,"Emp_Age":1,"yearOfJoining":{"$year":"$Emp_Joining_Date"}}},
    {$match:{"yearOfJoining":{$eq:2020}}}
    ]);


Output: 

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


No comments:

Post a Comment