A bit late, but here's the answer. We just need to add one more project stage to the pipeline at the end-stage.
{
aggregate([{
"$project": {
"LSDNumber": "$LSD.LSDNumber",
"year": {
"$year": "$createdon"
},
"PointOfDiversionVolumeDetails": 1
}
}, {
"$match": {
"year": 2014
}
}, {
"$group": {
"_id": "$LSDNumber",
"doc": {
"$push": "$PointOfDiversionVolumeDetails"
}
}
}, {
"$addFields": {
"GroupByDocCount": {
"$size": "$doc"
},
"Cumulative": {
"$reduce": {
"input": "$doc",
"initialValue": [],
"in": {
"$concatArrays": ["$$value", "$$this"]
}
}
}
}
}, {
"$project": {
"CumulativeVol": {
"$sum": "$Cumulative.Volume"
},
"LSDNumber": 1,
"GroupByDocCount": 1
}
}, {
"$sort": {
"GroupByDocCount": -1
}
}])
}
Also, please take a look at alternative answer add Year variable in $addField pipeline.