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

MongoDB-এ অ্যারের প্রতিটি এলিমেন্ট শর্ত মেনে কিনা যাচাই করুন

MongoDB-এ অ্যারে এলিমেন্টের শর্ত যাচাই

MongoDB-এ একটি ডকুমেন্টের অ্যারে-র সব এলিমেন্ট নির্দিষ্ট শর্ত পূরণ করছে কিনা তা যাচাই করতে every() ফাংশন ব্যবহার করা হয়।

উদাহরণ: ছাত্রদের নম্বর যাচাই

১. কালেকশন ও ডেটা তৈরি

> db.arrayConditionDemo.insertOne({"Name":"John","Marks":[40,43,45]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdbd06de8cc557214c0e1a") }
> db.arrayConditionDemo.insertOne({"Name":"Mike","Marks":[45]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdbd17de8cc557214c0e1b") }
> db.arrayConditionDemo.insertOne({"Name":"Chris","Marks":[43,45,59,69,78,89]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdbd3cde8cc557214c0e1c") }

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

> db.arrayConditionDemo.find().pretty();

৩. শর্ত যাচাই: সব নম্বর ৪০-১০০ এর মধ্যে কিনা

> db.arrayConditionDemo.find("return this.Marks.every(function(m) { return (m >= 40 && m<= 100) })");

আউটপুট

{ "_id" : ObjectId("5cbdbd06de8cc557214c0e1a"), "Name" : "John", "Marks" : [ 40, 43, 45 ] }
{ "_id" : ObjectId("5cbdbd17de8cc557214c0e1b"), "Name" : "Mike", "Marks" : [ 45 ] }
{ "_id" : ObjectId("5cbdbd3cde8cc557214c0e1c"), "Name" : "Chris", "Marks" : [ 43, 45, 59, 69, 78, 89 ] }

ব্যাখ্যা

  • every() জাভাস্ক্রিপ্ট অ্যারে মেথড, যা সব এলিমেন্ট শর্ত মেনে থাকলে true রিটার্ন করে।
  • এই কোয়েরিতে this.Marks হলো প্রতিটি ডকুমেন্টের Marks অ্যারে।
  • ফাংশন m >= 40 && m <= 100 প্রতিটি মার্কের জন্য চেক করে।

আধুনিক বিকল্প (MongoDB ৪.৪+)

এগ্রিগেশন পাইপলাইনে $allElementsTrue অপারেটর ব্যবহার করা আরও পারফরম্যান্স-ফ্রেন্ডলি।

  1. MongoDB-তে $slice ব্যবহার করে অ্যারে থেকে একমাত্র এলিমেন্ট বের করা

  2. MongoDB-তে এমবেডেড ডকুমেন্ট অ্যারে কোয়েরি করে নতুন এলিমেন্ট যোগ করা ($push + $nin)

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

  4. MongoDB-তে অ্যাগ্রিগেশন দিয়ে অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg)