আপনি 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") }
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();
কর্মচারী জিপকোডের ভিত্তিতে অভ্যন্তরীণ অ্যারেটি ক্রমবর্ধমান ক্রমে সাজানো হয়েছে এমন আউটপুটটি দেখানো হয়েছে:
{ "_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" } ] } } }