MongoDB অগরিগেশনে ডকুমেন্ট সর্ট করতে $sort স্টেজ ব্যবহার করুন। একটি কালেকশন তৈরি করুন নেস্টেড ডিটেইলস সহ:
> db.demo652.insertOne({
value:10,
"details" : [
{ "ProductName" : "Product-1", "ProductQuantity" : 8, "ProductPrice" : 500 },
{ "ProductName" : "Product-2", "ProductQuantity" : 7, "ProductPrice" : 500 }
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9f0730e3c3cd0dcff36a62") }
> db.demo652.insertOne({
value:5,
"details" : [
{ "ProductName" : "Product-1", "ProductQuantity" : 8, "ProductPrice" : 500 },
{ "ProductName" : "Product-2", "ProductQuantity" : 7, "ProductPrice" : 500 }
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e9f0740e3c3cd0dcff36a63") }
find() দিয়ে ডকুমেন্ট দেখান:
> db.demo652.find();
আউটপুট:
অগরিগেশন পাইপলাইনে
valueফিল্ড অনুযায়ী অ্যাসেন্ডিং সর্ট করার কোয়ারি:> db.demo652.aggregate([ { "$unwind": "$details" }, { "$match": {} }, { "$group": { "ProductPrice": { "$first": "$value" }, "details": { "$push": { "ProductName": "$details.ProductName" } }, "_id": "$_id" }}, { "$sort": { "ProductPrice": 1 } }, { "$project": { "_id": 0, "ProductPrice": 1, "details": 1 } } ]).pretty()সর্টেড আউটপুট:
ব্যাখ্যা: এখানে
$unwindদিয়ে details অ্যারে ফ্ল্যাট করা হয়েছে,$groupদিয়ে আবার গ্রুপ করা হয়েছেvalueফিল্ডকেProductPriceনামে রিনেম করে, এবং$sort: { ProductPrice: 1 }দিয়ে অ্যাসেন্ডিং সর্ট করা হয়েছে। ডেসেন্ডিং জন্য-1ব্যবহার করুন।