MongoDB অ্যাগ্রিগেশন পাইপলাইনে $slice অপারেটর ব্যবহার করে অ্যারে থেকে নির্দিষ্ট রেঞ্জ বা পজিশনের উপাদান বের করা যায়। সিনট্যাক্স: { $slice: [ <array>, <skip>, <limit> ] }।
নমুনা ডেটা তৈরি
> db.exactPositionDemo.insertOne({"StudentName":"John","StudentScores":[78,98,56,45,89]});
{ "acknowledged": true, "insertedId": ObjectId("5cd29a1c345990cee87fd883") }
ডকুমেন্ট দেখুন
> db.exactPositionDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd29a1c345990cee87fd883"),
"StudentName": "John",
"StudentScores": [78, 98, 56, 45, 89]
}
কেস ১: ০ নম্বর ইন্ডেক্স থেকে ১টি উপাদান (প্রথম উপাদান)
> db.exactPositionDemo.aggregate([
{ "$project": { "StudentScores": { "$slice": ["$StudentScores", 0, 1] } } }
]);
আউটপুট:
{ "_id": ObjectId("5cd29a1c345990cee87fd883"), "StudentScores": [78] }
কেস ২: ১ নম্বর ইন্ডেক্স থেকে ১টি উপাদান (দ্বিতীয় উপাদান)
> db.exactPositionDemo.aggregate([
{ "$project": { "StudentScores": { "$slice": ["$StudentScores", 1, 1] } } }
]);
আউটপুট:
{ "_id": ObjectId("5cd29a1c345990cee87fd883"), "StudentScores": [98] }
নোট: $slice-এ skip (কতটা bỏড়ে যাবে) এবং limit (কতগুলো নেবে) থাকে। নেগেটিভ ভ্যালু দিয়ে শেষ থেকে গিনতে পারেন।