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

MongoDB-তে $elemMatch ব্যবহার করে অ্যারে ভ্যালু অনুযায়ী ডকুমেন্ট ফিল্টার করা

$elemMatch অপারেটরটি অ্যারে ফিল্ডवाले ডকুমেন্টগুলোর মধ্যে কমপক্ষে একটি এলিমেন্ট যদি সব শর্ত পূরণ করে, তবে সেই ডকুমেন্টটি রিটার্ন করে। একাধিক শর্ত একই অ্যারে এলিমেন্টে মিলাতে এটি খুবই কার্যকর।

উদাহরণ: সংখ্যা অ্যারে সহ ডকুমেন্ট

> db.demo701.insertOne({"ListOfValues": [100, 200, 300]});
> db.demo701.insertOne({"ListOfValues": [500, 700, 1000]});
> db.demo701.insertOne({"ListOfValues": [300, 350, 450]});

সব ডকুমেন্ট দেখা

> db.demo701.find();

আউটপুট: তিনটি ডকুমেন্ট ভিন্ন ভিন্ন সংখ্যা অ্যারে সহ।

৫০০-এর বড় মান থাকা ডকুমেন্ট বের করা

> db.demo701.find({ "ListOfValues": { $elemMatch: { $gt: 500 } } });

আউটপুট:

{ "_id" : ..., "ListOfValues" : [ 500, 700, 1000 ] }

ব্যাখ্যা: শুধু দ্বিতীয় ডকুমেন্টে ৫০০-এর বড় মান (৭০০, ১০০০) আছে, তাই সেটি মাত্র ফলাফলে আসে। প্রথম এবং তৃতীয় ডকুমেন্টে ৫০০-এর বড় কোনো মান নেই।

অবজেক্ট অ্যারেতে ব্যবহার: যদি অ্যারেতে অবজেক্ট থাকে (যেমন {name: "A", value: 10}), তবে $elemMatch দিয়ে একই অবজেক্টের একাধিক ফিল্ড মিলানো যায়।

  1. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান অনুযায়ী ডকুমেন্ট ফিল্টার করা

  2. MongoDB-তে $elemMatch এবং $and দিয়ে অ্যারে ফিল্ডে একাধিক শর্ত মিলিয়ে ডকুমেন্ট বের করা

  3. MongoDB-এ নির্দিষ্ট সংখ্যা থেকে বড় ফিল্ড ভ্যালু वाले ডকুমেন্ট ফেচ করা

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা