$project স্টেজ দিয়ে পাইপলাইনে নির্দিষ্ট ফিল্ড পাস করুন। স্লাইসিংও করা যায়।
> db.demo762.insertOne({
"_id": { "userId":101, "userName":"Chris" },
"countryName": "US",
"details": [
{ "Name": "Robert", "DueDate": "2020-04-10" },
{ "Name": "Robert", "DueDate": "2020-04-09" },
{ "Name": "Robert", "DueDate": "2020-03-06" }
]
});
এগ্রিগেশন কোয়েরি (DueDate অ্যাসেন্ডিং সর্ট, শুধু প্রথম ২টি):
> db.demo762.aggregate([
{ "$match": { "_id": { "$eq": { userId:101, userName:"Chris" } } } },
{ "$unwind": "$details" },
{ "$sort": { "details.DueDate": 1 } },
{ "$group": { "_id": "$_id", "details": { "$push": "$details" }, "countryName": { "$first": "$countryName" } } },
{ "$project": { "details": { "$slice": ["$details", 2] }, "countryName": 1 } }
]).pretty();
ফলাফল: DueDate অনুযায়ী সর্ট করা প্রথম ২টি ডিটেইলস রিটার্ন হয়েছে।