I am new to MongoDb and would appreciate some help with this query. I wrote the following aggregation pipeline with Get last 5 days data based on date field but small issue all data is comming how to get only 5 days data and sum of consumption any one please any one suggest me.
    {
    "timeId" : ISODate("2018-09-10T16:40:08.817Z"),
    "vendor" : "CIMCON",
    "slcId" : "123450"
    "mongoStreetLightChildVo" : {
        "deviceType" : "L",
        "totalStreetLights" : 3.0,
        "totalConsumptionMtd" : "2"
        "mongoStreetLightChildVo1s" : [ 
            {
                "date" : ISODate("2018-09-01T16:40:08.817Z"),
                "consumption" : 27.0,
                "burnHours" : 24.0
            }, 
             {
                "date" : ISODate("2018-09-02T16:40:08.817Z"),
                "consumption" : 2.0,
                "burnHours" : 24.0
            }, 
             {
                "date" : ISODate("2018-09-03T16:40:08.817Z"),
                "consumption" : 287.0,
                "burnHours" : 20.0
            }, 
             {
                "date" : ISODate("2018-09-04T16:40:08.817Z"),
                "consumption" : 209.0,
                "burnHours" : 2.0
            }, 
             {
                "date" : ISODate("2018-09-05T16:40:08.817Z"),
                "consumption" : 243.0,
                "burnHours" : 4.0
            },
             {
                "date" : ISODate("2018-09-06T16:40:08.817Z"),
                "consumption" : 254.0,
                "burnHours" : 4.0
            }, 
             {
                "date" : ISODate("2018-09-07T16:40:08.817Z"),
                "consumption" : 235.0,
                "burnHours" : 24.0
            }, 
             {
                "date" : ISODate("2018-09-08T16:40:08.817Z"),
                "consumption" : 62.0,
                "burnHours" : 24.0
            }, 
             {
                "date" : ISODate("2018-09-09T16:40:08.817Z"),
                "consumption" : 2.0,
                "burnHours" : 23.0
            }, 
             {
                "date" : ISODate("2018-09-10T02:40:08.817Z"),
                "consumption" : 26.0,
                "burnHours" : 27.0
            }
        ]
    }
}
This is my dataset.
I use this to get the Last 5 days data.
db.collection.aggregate([
{$match:{
    "mongoStreetLightChildVo.mongoStreetLightChildVo1s.date": 
    {
        $gte: new Date((new Date().getTime() - (5 * 24 * 60 * 60 * 1000)))
    }
}
},
{$project:{
   "mongoStreetLightChildVo.mongoStreetLightChildVo1s.date":1,
   "mongoStreetLightChildVo.mongoStreetLightChildVo1s.consumption":1
}}
])
how to get only 5 days data
My required output is:
  {
                "date" : ISODate("2018-09-05T16:40:08.817Z"),
                "consumption" : 243.0,
                "burnHours" : 4.0
            },
             {
                "date" : ISODate("2018-09-06T16:40:08.817Z"),
                "consumption" : 254.0,
                "burnHours" : 4.0
            }, 
             {
                "date" : ISODate("2018-09-07T16:40:08.817Z"),
                "consumption" : 235.0,
                "burnHours" : 24.0
            }, 
             {
                "date" : ISODate("2018-09-08T16:40:08.817Z"),
                "consumption" : 62.0,
                "burnHours" : 24.0
            }, 
             {
                "date" : ISODate("2018-09-09T16:40:08.817Z"),
                "consumption" : 2.0,
                "burnHours" : 23.0
            }, 
             {
                "date" : ISODate("2018-09-10T02:40:08.817Z"),
                "consumption" : 26.0,
                "burnHours" : 27.0
            }
