Database

[{"_id":ObjectId("608be7c608c7de2367c89638"),"status":true,"gender":"Male","first_name":"Vinter","last_name":"R","dob":"1-2-1999"},{"_id":ObjectId("608be7c608c7de2267c89639"),"status":true,"gender":"Male","first_name":"Ray","last_name":"Morgan","dob":"1-2-2015"},{"_id":ObjectId("608be7c608c7de2367c89640"),"status":true,"gender":"Female","first_name":"Lisa","last_name":"K","dob":"1-2-2010"},{"_id":ObjectId("608be7c608c7de2367c89641"),"status":true,"gender":"Male","first_name":"Messi","last_name":"L","dob":"1-2-2001"}]

Query

db.collection.aggregate([{$bucket:{groupBy:{"$subtract":[{$year:new Date()},{$toInt:{$substr:["$dob",{$subtract:[{$strLenCP:"$dob"},4]},4]}}]},/** Field to group by*/boundaries:[0,19,25,35,100],/** Boundaries for the buckets*/default:"Other",/** Bucket id for documents which do not fall into a bucket*/output:{/** Output for each bucket*/"count":{$sum:1},"artists":{$push:{"name":{$concat:["$first_name"," ","$last_name"]},"age":{"$subtract":[{$year:new Date()},{$toInt:{$substr:["$dob",{$subtract:[{$strLenCP:"$dob"},4]},4]}}]}}}}}}])

Result