आप 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." }
]}}}
);
find() मेथड की मदद से कलेक्शन से सभी डॉक्यूमेंट्स प्रदर्शित करें। क्वेरी इस प्रकार है:
> 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();
निम्नलिखित आउटपुट EmployeeZipCode के आधार पर आरोही क्रम में सॉर्ट किए गए इनर ऐरे को प्रदर्शित करता है:
{ "_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();
निम्नलिखित आउटपुट EmployeeZipCode के आधार पर अवरोही क्रम में सॉर्ट किए गए इनर ऐरे को प्रदर्शित करता है:
{ "_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" }
]}}}