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

MongoDB-এ মাল্টিকি ইন্ডেক্স ও $elemMatch দিয়ে কোয়েরি অপ্টিমাইজেশন


অ্যারে অবজেক্ট কোয়েরি অপ্টিমাইজ: $elemMatch

MongoDB-এ অ্যারে অবজেক্টের মধ্যে নির্দিষ্ট শর্ত পূরণ करनेवाले এলিমেন্ট খুঁজে বের করতে $elemMatch ব্যবহার করা হয়। এটি মাল্টিকি ইন্ডেক্সের সাথে কার্যকরভাবে কাজ করে।

নমুনা ডেটা তৈরি

> db.demo444.insertOne({ "Information": [{ "id": 1, "Name": "Chris" }] })
> db.demo444.insertOne({ "Information": [{ "id": 2, "Name": "David" }] })
> db.demo444.insertOne({ "Information": [{ "id": 3, "Name": "Bob" }] })

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

> db.demo444.find()

আউটপুট:

{ "_id": ObjectId("..."), "Information": [{ "id": 1, "Name": "Chris" }] }
{ "_id": ObjectId("..."), "Information": [{ "id": 2, "Name": "David" }] }
{ "_id": ObjectId("..."), "Information": [{ "id": 3, "Name": "Bob" }] }

$elemMatch দিয়ে কোয়েরি

> db.demo444.find({
    "Information": {
        $elemMatch: { "id": 2, "Name": "David" }
    }
})

ফলাফল:

{ "_id": ObjectId("..."), "Information": [{ "id": 2, "Name": "David" }] }

ব্যাখ্যা

  • $elemMatch: অ্যারেতে একই এলিমেন্টে উভয় শর্ত পূরণ হয় কিনা তা চেক করে
  • বिना $elemMatch দিয়ে { "Information.id": 2, "Information.Name": "David" } লিখলে আলাদা এলিমেন্ট থেকেও মátus হতে পারে
  • মাল্টিকি ইন্ডেক্স (db.demo444.createIndex({ "Information.id": 1, "Information.Name": 1 })) এর সাথে এটি দ্রুত কাজ করে

নেস্টেড অ্যারে অবজেক্ট কোয়েরির জন্য $elemMatch সঠিক এবং পারফরম্যান্স-বান্ধব পদ্ধতি।

  1. MongoDB-তে অ্যারে পুশ করার পদ্ধতি

  2. MongoDB-এ অ্যারেতে এলিমেন্ট যুক্ত করার পদ্ধতি

  3. MongoDB-এ অ্যারে আইটেম গণনা করার পদ্ধতি

  4. MongoDB-এ অ্যারে ফিল্ডে সব এলিমেন্ট ম্যাচ করা ($all অপারেটর)