Database
[{"_id":1.0,"age":21.0,"salary":2500.0},{"_id":2.0,"age":42.0,"salary":4300.0},{"_id":3.0,"age":32.0,"salary":3100.0},{"_id":4.0,"age":18.0,"salary":7000.0},{"_id":5.0,"age":25.0,"salary":5600.0},{"_id":6.0,"age":28.0,"salary":5200.0},{"_id":7.0,"age":38.0,"salary":5000.0},{"_id":8.0,"age":28.0,"salary":5200.0}]
Query
db.collection.aggregate([{$facet:{"age":[{$bucketAuto:{groupBy:"$age",buckets:4,output:{"data":{$push:{"_id":"$$ROOT._id",age:"$$ROOT.age"}}}}}],"salary":[{$bucketAuto:{groupBy:"$salary",buckets:4,output:{"data":{$push:{"_id":"$$ROOT._id",salary:"$$ROOT.salary"}}}}}]}},{$unwind:{path:"$age",includeArrayIndex:"arrayIndexAge"}},{$unwind:{path:"$salary",includeArrayIndex:"arrayIndexSalary"}},{$addFields:{"age.data.age":{$switch:{branches:[{case:{$eq:["$arrayIndexAge",0]},then:"less than 25 percent"},{case:{$eq:["$arrayIndexAge",1]},then:"between 25 and 50 percent"},{case:{$eq:["$arrayIndexAge",2]},then:"between 50 and 75 percent"},{case:{$eq:["$arrayIndexAge",3]},then:"more than 75 percent"}]}},"salary.data.salary":{$switch:{branches:[{case:{$eq:["$arrayIndexSalary",0]},then:"less than 25 percent"},{case:{$eq:["$arrayIndexSalary",1]},then:"between 25 and 50 percent"},{case:{$eq:["$arrayIndexSalary",2]},then:"between 50 and 75 percent"},{case:{$eq:["$arrayIndexSalary",3]},then:"more than 75 percent"}]}}}},{$project:{data:{$concatArrays:["$age.data","$salary.data"]}}},{$unwind:"$data"},{$group:{_id:"$data._id",age:{$addToSet:"$data.age"},salary:{$addToSet:"$data.salary"}}},{$addFields:{age:{$arrayElemAt:["$age",0]},salary:{$arrayElemAt:["$salary",0]}}}])