অ্যারে অবজেক্ট কোয়েরি অপ্টিমাইজ: $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 সঠিক এবং পারফরম্যান্স-বান্ধব পদ্ধতি।