Database

[{"id":"1","emp_name":"emp1","data":[{"emp_country":"country1","emp_city":"city1","salary":[{"INR":5000},{"DOLLER":600},{"MXN":200}]},{"emp_country":"country1","emp_city":"city2","salary":[{"INR":600},{"DOLLER":200},{"MXN":400}]}]},{"id":"2","emp_name":"emp2","data":[{"emp_country":"country2","emp_city":"city2","salary":[{"INR":5000},{"MXN":200},{"DOLLER":400}]}]},{"id":"3","emp_name":"emp3","data":[{"emp_country":"country1","emp_city":"city1","salary":[{"MXN":400}]}]},{"id":"4","emp_name":"emp4","data":[{"emp_country":"country1","emp_city":"city2","salary":[{"DOLLER":200}]}]}]

Query

db.collection.aggregate([{$unwind:"$data"},{$unwind:"$data.salary"},{$addFields:{currency:{"$objectToArray":"$data.salary"}}},{$unwind:"$currency"},{$group:{_id:{country:"$data.emp_country",city:"$data.emp_city",emp_name:"$emp_name",currency:"$currency.k"},max:{$max:"$currency.v"},min:{$min:"$currency.v"},}},{$group:{_id:{country:"$_id.country",city:"$_id.city",emp_name:"$_id.emp_name",},emp_salary:{$push:{currency:"$_id.currency",max:"$max",min:"$min"}}}},{$project:{emp_salary:1,emp_country:"$_id.country",emp_city:"$_id.city",emp_name:"$_id.emp_name",_id:0}}])

Result