हम एकत्रीकरण क्वेरी का उपयोग करके उपरोक्त परिणाम प्राप्त कर सकते हैं।
$unwind
- वेतन की सरणी को फिर से बनाने के लिए$group
- emp शहर, देश, नाम, मुद्रा के साथ न्यूनतम और वेतन के अधिकतम मूल्य के अनुसार समूह$group
- emp_salary में पुश करने के लिए दूसरे का उपयोग करें$project
- अपने प्रारूप में फ़ील्ड दिखाने के लिए
db.collection.aggregate([
{
"$unwind": {
"path": "$data"
}
},
{
"$unwind": {
"path": "$data.salary"
}
},
{
"$group": {
"_id": {
"emp_city": "$data.emp_city",
"emp_country": "$data.emp_country",
"emp_name": "$emp_name",
"currency": "$data.salary.currency",
},
"max": {
"$max": "$data.salary.amount"
},
"min": {
"$min": "$data.salary.amount"
}
}
},
{
"$group": {
"_id": {
"emp_city": "$_id.emp_city",
"emp_country": "$_id.emp_country",
"emp_name": "$_id.emp_name",
},
"emp_salary": {
"$push": {
"currency": "$_id.currency",
"min": "$min",
"max": "$max"
}
}
}
},
{
"$project": {
"_id": 0,
"emp_city": "$_id.emp_city",
"emp_country": "$_id.emp_country",
"emp_name": "$_id.emp_name",
"emp_salary": 1,
}
}
])