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

MongoDB-এ নির্দিষ্ট অ্যারে এলিমেন্ট সমाहিত ডকুমেন্ট খোঁজা ($all অপারেটর)

MongoDB-এ যখন কোনো অ্যারে ফিল্ডে নির্দিষ্ট সব এলিমেন্টগুলো আছে কিনা যাচাই করতে হয়, তখন $all অপারেটর ব্যবহার করা হয়। $all অপারেটর সেই ডকুমেন্টগুলো সিলেক্ট করে যেখানে একটি ফিল্ডের মান এমন একটি অ্যারে যা নির্দিষ্ট সকল এলিমেন্টগুলো ধারণ করে।

উদাহরণ: কালেকশন ও ডেটা তৈরি

> db.demo543.insertOne({id:101, subject:["MySQL", "Java" ,"C","Python"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05c9") }
> db.demo543.insertOne({id:102, subject:["MySQL", "MongoDB" ,"SQL Server"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05ca") }

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

> db.demo543.find();

আউটপুট:

{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05c9"), "id" : 101, "subject" : [ "MySQL", "Java", "C", "Python" ] }
{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }

নির্দিষ্ট অ্যারে এলিমেন্ট সমাহিত ডকুমেন্ট খোঁজা

যে ডকুমেন্টগুলোতে subject অ্যারেতে "MySQL", "MongoDB", এবং "SQL Server" — এই তিনটি এলিমেন্ট সবগুলো থাকে, সেগুলো বের করতে:

> db.demo543.find({
    "subject": { $all: [ "MySQL", "MongoDB", "SQL Server" ], $size: 3 }
})

व्याख্যা:

  • $all: [ "MySQL", "MongoDB", "SQL Server" ] — এই তিনটি এলিমেন্ট অ্যারেতে থাকতে হবে।
  • $size: 3 — অ্যারেতে মোট ৩টি এলিমেন্ট থাকবে (অতিরিক্ত কোনো এলিমেন্ট থাকবে না)।

আউটপুট:

{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }

মূল পয়েন্টসমূহ

  • $all অপারেটর অর্ডার বিবেচনা করে না, শুধু সব এলিমেন্ট থাকা জরুরি।
  • $size ব্যবহার করে অ্যারের সাইজ নির্দিষ্ট করা যায়।
  • এটি এক্সएक্ট ম্যাচ (exact match) নয়, সাবসেট (subset) ম্যাচ।
  1. MongoDB-এ অ্যারেতে সব এলিমেন্ট আপডেট করা ($[] অল পজিশনাল অপারেটর)

  2. MongoDB-তে অ্যারے के ভেতরের এলিমেন্ট আপডেট

  3. MongoDB-এ অ্যারে এলিমেন্টস সহ নির্দিষ্ট ডকুমেন্ট ফেচ করা

  4. MongoDB অ্যাগ্রিগেশন: নেস্টেড অ্যারে এলিমেন্টের গড় (Average) বের করা ($avg + $unwind)