आप इसे MongoDB में समग्र ढांचे की सहायता से प्राप्त कर सकते हैं। इसे समझने के लिए, हम दस्तावेज़ के साथ एक संग्रह बनाते हैं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है:
> db.sortInnerArrayDemo.insertOne( ... ... { ... "EmployeeDetails": ... { ... "EmployeeAddress": ... { ... "EmployeeCountry": ... [ ... { ... "EmployeeZipCode":1003, ... "EmployeeStreetName":"7885 Trusel Street" ... }, ... { ... "EmployeeZipCode":1001, ... "EmployeeStreetName":"7390 Gonzales Drive" ... }, ... { ... "EmployeeZipCode":1002, ... "EmployeeStreetName":"444 N.Myres Rd." ... } ... ] ... } ... } ... } ... ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c6f07d3da34711ecf87a5b8") }
संग्रह से सभी दस्तावेज़ों को ढूँढें () विधि की सहायता से प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.sortInnerArrayDemo.find().pretty();
निम्न आउटपुट है:
{ "_id" : ObjectId("5c6f07d3da34711ecf87a5b8"), "EmployeeDetails" : { "EmployeeAddress" : { "EmployeeCountry" : [ { "EmployeeZipCode" : 1003, "EmployeeStreetName" : "7885 Trusel Street" }, { "EmployeeZipCode" : 1001, "EmployeeStreetName" : "7390 Gonzales Drive" }, { "EmployeeZipCode" : 1002, "EmployeeStreetName" : "444 N.Myres Rd." } ]} } }
इनर ऐरे को सॉर्ट करने के लिए क्वेरी निम्न है।
केस 1 :आरोही क्रम में क्रमबद्ध करें।
क्वेरी इस प्रकार है:
> db.sortInnerArrayDemo.aggregate( ... {$unwind: '$EmployeeDetails.EmployeeAddress.EmployeeCountry'}, ... {$sort: {'EmployeeDetails.EmployeeAddress.EmployeeCountry.EmployeeZipCode': 1}}, ... {$group: {_id: '$_id', 'EmpCountry': {$push: '$EmployeeDetails.EmployeeAddress.EmployeeCountry'}}}, ... {$project: {'EmployeeDetails.EmployeeAddress.EmployeeCountry': '$EmpCountry'}}).pretty();
कर्मचारीज़िपकोड के आधार पर आरोही क्रम में क्रमबद्ध आंतरिक सरणी को प्रदर्शित करने वाला आउटपुट निम्न है:
{ "_id" : ObjectId("5c6f07d3da34711ecf87a5b8"), "EmployeeDetails" : { "EmployeeAddress" : { "EmployeeCountry" : [ { "EmployeeZipCode" : 1001, "EmployeeStreetName" : "7390 Gonzales Drive" }, { "EmployeeZipCode" : 1002, "EmployeeStreetName" : "444 N.Myres Rd." }, { "EmployeeZipCode" : 1003, "EmployeeStreetName" : "7885 Trusel Street" } ] } } }
केस 2 :अवरोही क्रम में क्रमबद्ध करें
क्वेरी इस प्रकार है:
> db.sortInnerArrayDemo.aggregate( ... {$unwind: '$EmployeeDetails.EmployeeAddress.EmployeeCountry'}, ... {$sort: {'EmployeeDetails.EmployeeAddress.EmployeeCountry.EmployeeZipCode':-1}}, ... {$group: {_id: '$_id', 'EmpCountry': {$push: '$EmployeeDetails.EmployeeAddress.EmployeeCountry'}}}, ... {$project: {'EmployeeDetails.EmployeeAddress.EmployeeCountry': '$EmpCountry'}}).pretty();
कर्मचारीज़िपकोड के आधार पर आंतरिक सरणी को अवरोही क्रम में प्रदर्शित करने वाला आउटपुट निम्न है:
{ "_id" : ObjectId("5c6f07d3da34711ecf87a5b8"), "EmployeeDetails" : { "EmployeeAddress" : { "EmployeeCountry" : [ { "EmployeeZipCode" : 1003, "EmployeeStreetName" : "7885 Trusel Street" }, { "EmployeeZipCode" : 1002, "EmployeeStreetName" : "444 N.Myres Rd." }, { "EmployeeZipCode" : 1001, "EmployeeStreetName" : "7390 Gonzales Drive" } ] } } }