MongoDB-তে $slice অপারেটর ব্যবহার করে অ্যারের প্রথম এলিমেন্টের প্রপার্টি পাওয়া
MongoDB-তে অ্যারে ফিল্ড থেকে শুধু প্রথম এলিমেন্ট (এবং তার নির্দিষ্ট প্রপার্টি) প্রজেক্ট করতে $slice অপারেটর ব্যবহার করা হয়।
ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন
> db.firstElementOfArray.insertOne(
{
_id: 100,
"Details": [
{ "CustomerName": "John", "CustomerCountryName": "US" }
]
}
);
{ "acknowledged" : true, "insertedId" : 100 }
> db.firstElementOfArray.insertOne(
{
_id: 101,
"Details": [
{ "CustomerName": "Carol", "CustomerCountryName": "UK" },
{ "CustomerName": "David", "CustomerCountryName": "AUS" }
]
}
);
{ "acknowledged" : true, "insertedId" : 101 }
ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন
> db.firstElementOfArray.find().pretty();
আউটপুট:
{
"_id" : 100,
"Details" : [
{ "CustomerName" : "John", "CustomerCountryName" : "US" }
]
}
{
"_id" : 101,
"Details" : [
{ "CustomerName" : "Carol", "CustomerCountryName" : "UK" },
{ "CustomerName" : "David", "CustomerCountryName" : "AUS" }
]
}
ধাপ ৩: অ্যারের প্রথম এলিমেন্টের CustomerName প্রপার্টি পান
> db.firstElementOfArray.find({}, {'Details': {$slice: 1}, 'Details.CustomerName': 1}).pretty();
ফলাফল:
{
"_id" : 100,
"Details" : [ { "CustomerName" : "John" } ]
}
{
"_id" : 101,
"Details" : [ { "CustomerName" : "Carol" } ]
}
ব্যাখ্যা:
{$slice: 1}- অ্যারেতে শুধু প্রথম ১টি এলিমেন্ট রাখে (পজিটিভ সংখ্যা = শুরু থেকে)'Details.CustomerName': 1- স্লাইস করা এলিমেন্ট থেকে শুধু CustomerName ফিল্ড প্রজেক্ট করে- _id: 100 वाले ডকুমেন্টে ১টি এলিমেন্ট থাকায় সেটি পাওয়া গেছে
- _id: 101 वाले ডকুমেন্টে ২টি এলিমেন্ট থাকায় প্রথমটি (Carol) পাওয়া গেছে
আরও $slice উদাহরণ:
{$slice: -1}- শেষ ১টি এলিমেন্ট{$slice: [skip, limit]}-.skip করে limit সংখ্যক এলিমেন্ট (যেমন[$slice: [1, 2]]= ২য় ও ৩য় এলিমেন্ট)