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

MongoDB-এ অ্যারে অবজেক্টের মধ্যে একাধিক শর্ত ম্যাচ করা

অ্যারে অবজেক্টের মধ্যে একাধিক শর্ত একসাথে ম্যাচ করতে $and এবং $regex সাথে $elemMatch ব্যবহার করুন। একটি কালেকশন তৈরি করুন:

> db.demo525.insertOne({"details":[{Name:"Chris","CountryName":"US"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8ae5ef437efc8605595b66") }
> db.demo525.insertOne({"details":[{Name:"Bob","CountryName":"UK"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8ae5f8437efc8605595b67") }
> db.demo525.insertOne({"details":[{Name:"chris","CountryName":"us"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8ae602437efc8605595b68") }
> db.demo525.insertOne({"details":[{Name:"Mike","CountryName":"UK"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8ae60b437efc8605595b69") }

find() দিয়ে ডকুমেন্ট দেখান:

> db.demo525.find();

আউটপুট:

নাম "Chris" (কেস-ইনসেনসিটিভ) এবং কান্ট্রি "us" (কেস-ইনসেনসেনসিটিভ) দুটোই মিলে যাওয়া ডকুমেন্ট বের করা:

> db.demo525.find(
    {"$and": [
        { "details" : { "$elemMatch" :{ "Name": {$regex: new RegExp('^' + 'Chris', 'i')}}}},
        { "details" : { "$elemMatch" :{ "CountryName": {$regex: new RegExp('^' + 'us', 'i')}}}}
    ]}
)

আউটপুট:

ব্যাখ্যা: $and দুই শর্ত একসাথে পূরণ করতে বাধ্য করে। $elemMatch নিশ্চিত করে যে একই সাব-ডকুমেন্টে দুটো শর্তই মেনে। new RegExp('^' + 'Chris', 'i') "^Chris" প্যাটার্ন (শুরুতে Chris) কেস-ইনসেনসিটিভভাবে ম্যাচ করে।

  1. MongoDB-এ ফাইন্ড কুয়েরি থেকে অ্যারে মান রিট্রিভ করা

  2. MongoDB-তে অ্যারে থেকে একাধিক মান বের করার কোয়ারি

  3. MongoDB-তে অবজেক্টের অ্যারেতে _id দিয়ে খুঁজে বের করা

  4. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি