কম্পিউটার টিউটোরিয়াল

MongoDB-এ নির্দিষ্ট সংখ্যক অ্যারে এলিমেন্ট রিটার্ন করা

MongoDB-এ অ্যারে ফিল্ড থেকে নির্দিষ্ট সংখ্যক এলিমেন্ট রিটার্ন করতে অ্যাগ্রিগেশন পাইপলাইনে $project স্টেজের সাথে $slice অপারেটর ব্যবহার করা হয়।

সিনট্যাক্স

db.collection.aggregate([
  { $project: { fieldName: { $slice: [ "$fieldName", numberOfElements ] } } }
]);

নমুনা কালেকশন তৈরি

> db.demo75.insertOne({ "Name": ["Sam", "Mike", "Carol", "David", "Bob", "John"] });
{ "acknowledged": true, "insertedId": ObjectId("5e2bcd7671bf0181ecc42278") }

ডকুমেন্ট দেখানো

> db.demo75.find();

আউটপুট:

{ "_id": ObjectId("5e2bcd7671bf0181ecc42278"), "Name": [ "Sam", "Mike", "Carol", "David", "Bob", "John" ] }

প্রথম ৪টি এলিমেন্ট রিটার্ন করা

> db.demo75.aggregate([
  { $project: { Name: { $slice: [ "$Name", 4 ] } } }
]);

ফলাফল

{ "_id": ObjectId("5e2bcd7671bf0181ecc42278"), "Name": [ "Sam", "Mike", "Carol", "David" ] }

ব্যাখ্যা: $slice: [ "$Name", 4 ] - Name অ্যারের প্রথম ৪টি এলিমেন্ট রিটার্ন করে।

$slice এর বিভিন্ন ব্যবহার

সিনট্যাক্সফলাফল
{ $slice: [ "$array", 3 ] }প্রথম ৩টি এলিমেন্ট
{ $slice: [ "$array", -3 ] }শেষ ৩টি এলিমেন্ট
{ $slice: [ "$array", 2, 3 ] }ইনডেক্স ২ থেকে ৩টি এলিমেন্ট (skip 2, limit 3)
{ $slice: [ "$array", -5, 3 ] }শেষ ৫টির মধ্য থেকে প্রথম ৩টি

find() এ projection-এ $slice (MongoDB ৪.৪+)

db.demo75.find({}, { Name: { $slice: 4 } });

অ্যাগ্রিগেশন ছাড়া সরাসরি find-এও সম্ভব (নতুন ভার্সনে)।

  1. MongoDB-তে এম্বেডেড অ্যারে থেকে নির্দিষ্ট এলিমেন্ট পাওয়া

  2. MongoDB-এ নির্দিষ্ট ফিল্ড মান আপডেট করা ($set অপারেটর)

  3. MongoDB-এ ডকুমেন্ট সংখ্যা (Count) বের করা (count() / countDocuments())

  4. MongoDB ডকুমেন্টের নির্দিষ্ট ফিল্ড থেকে অ্যারে এলিমেন্ট কাউন্ট করা