Database
[{_id:1,age:21,salary:2500},{_id:2,age:42,salary:4300},{_id:3,age:32,salary:3100},{_id:4,age:18,salary:7000},{_id:5,age:25,salary:5600},{_id:6,age:28,salary:5200},{_id:7,age:38,salary:5000},{_id:8,age:28,salary:5200}]
Query
db.collection.aggregate([{$facet:{extremes:[{$group:{_id:null,maxAge:{$max:"$age"},minAge:{$min:"$age"},maxSalary:{$max:"$salary"},minSalary:{$min:"$salary"}}}],root:[{$match:{}}]}},{$set:{extremes:{$arrayElemAt:["$extremes",0]}}},{$unwind:"$root"},{$addFields:{root:{agePercent:{$toInt:{$multiply:[{$divide:[{$subtract:["$root.age","$extremes.minAge"]},{$subtract:["$extremes.maxAge","$extremes.minAge"]}]},100]}},salaryPercent:{$toInt:{$multiply:[{$divide:[{$subtract:["$root.salary","$extremes.minSalary"]},{$subtract:["$extremes.maxSalary","$extremes.minSalary"]}]},100]}}}}},{$replaceWith:"$root"},{$project:{age:{$switch:{branches:[{case:{$lt:["$agePercent",25]},then:"less than 25 percent"},{case:{$lt:["$agePercent",50]},then:"less than 50 percent"},{case:{$lt:["$agePercent",75]},then:"less than 75 percent"},{case:{$gte:["$agePercent",75]},then:"more than 75 percent"}],default:"Unknown"}},salary:{$switch:{branches:[{case:{$lt:["$salaryPercent",25]},then:"less than 25 percent"},{case:{$lt:["$salaryPercent",50]},then:"less than 50 percent"},{case:{$lt:["$salaryPercent",75]},then:"less than 75 percent"},{case:{$gte:["$salaryPercent",75]},then:"more than 75 percent"}],default:"Unknown"}}}}])