Database
[{"typ":"ABC","data":[{"name":"XYZ","in_data":{"date":{"el2":"2015-01-10","el1":"2014-01-10"},"version":"0.22","model":"2015"}}]},{"typ":"ABC","data":[{"name":"LMNO","in_data":{"date":{"el2":"2015-01-10","el1":"2014-01-10"},"version":"0.22","model":"2014"}}]},{"typ":"EDC","data":[{"name":"QWERTY","in_data":{"date":{"el3":"2015-01-10","el4":"2014-01-10"},"version":"0.52","model":"2010"}}]}]
Query
db.collection.aggregate([{$addFields:{data:{$arrayElemAt:["$data",0]}}},{$addFields:{name:"$data.name",date_key:{$map:{input:{$objectToArray:"$data.in_data.date"},as:"el",in:"$$el.k"}}}},{$group:{_id:"$typ",typ_count:{$sum:1},name:{$push:"$name"},date_key:{$push:"$date_key"}}},{$project:{_id:0,typ_count:1,name:1,date_key:{$reduce:{input:"$date_key",initialValue:[],in:{$concatArrays:["$$value",{$cond:[{$in:["$$this",["$$value"]]},[],"$$this"]}]}}}}}])