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

MongoDB-এ সাব-কলেকশনে ডকুমেন্ট ফেচ করতে $and বদলে $in ব্যবহার

MongoDB-এ নেস্ট করা অ্যারেতে ডকুমেন্ট খুঁজে বের করতে $and অপারেটর ব্যবহারের বদলে $in অপারেটর ব্যবহার করা আরও কার্যকর এবং সহজ।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo83.insertOne({
...   "Details":[
...     {
...       "Name":"Chris",
...       "Subject":["MySQL", "MongoDB"]
...     },
...     {
...       "Name":"David",
...       "Subject":["Java", "C"]
...     }
...   ]
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bfd2271bf0181ecc422a3") }
> db.demo83.insertOne({
...   "Details":[
...     {
...       "Name":"Bob",
...       "Subject":["C++", "Python"]
...     },
...     {
...       "Name":"John",
...       "Subject":["Spring", "Hibernate"]
...     }
...   ]
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bfd4571bf0181ecc422a4") }

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

> db.demo83.find();

আউটপুট:

{ "_id" : ObjectId("5e2bfd2271bf0181ecc422a3"), "Details" : [ { "Name" : "Chris", "Subject" : [ "MySQL", "MongoDB" ] }, { "Name" : "David", "Subject" : [ "Java", "C" ] } ] }
{ "_id" : ObjectId("5e2bfd4571bf0181ecc422a4"), "Details" : [ { "Name" : "Bob", "Subject" : [ "C++", "Python" ] }, { "Name" : "John", "Subject" : [ "Spring", "Hibernate" ] } ] }

$in ব্যবহার করে কোয়ারি

$elemMatch এর ভেতরে $in ব্যবহার করে "Chris" নাম এবং "MongoDB" সাবজেক্ট দুটি শর্ত মিলানো হয়েছে:

> db.demo83.find({
...   "Details" : {
...     "$elemMatch" : {
...       "Name" : "Chris",
...       "Subject" : { "$in" : ["MongoDB"] }
...     }
...   }
... });

ফলাফল

{ "_id" : ObjectId("5e2bfd2271bf0181ecc422a3"), "Details" : [ { "Name" : "Chris", "Subject" : [ "MySQL", "MongoDB" ] }, { "Name" : "David", "Subject" : [ "Java", "C" ] } ] }

ব্যাখ্যা: কোয়ারীটি পুরো ডকুমেন্ট রিটার্ন করে যাতে Details অ্যারেতে কমপক্ষে একটি এলিমেন্টে Name: "Chris" এবং Subject অ্যারেতে "MongoDB" থাকে।

নোট: $in অপারেটর অ্যারেতে কোনো মান আছে কিনা চেক করতে খুব দ্রুত এবং পঠনযোগ্য। একাধিক মান চেক করতে হলে {$in: ["MongoDB", "MySQL"]}这种写法也可以使用。

  1. MongoDB-এ ডকুমেন্টের ভেতরের অ্যারেতে অবজেক্ট আপডেট করা (Positional $ অপারেটর)

  2. MongoDB-তে নেস্টেড ডকুমেন্ট খোঁজা (Dot Notation)

  3. MongoDB $regex অপারেটর: কেস-ইনসেনসিটিভ সার্চ (i ফ্ল্যাগ)

  4. MongoDB অপ্টিমাইজ করা: স্টোরেজ বর্জ্য কমাতে প্রমাণিত টেকনিক