MongoDB-এ ফার্স্ট-লেভেল (সিম্পল) অ্যারেতে মান খোঁজার জন্য $elemMatch প্রয়োজন নয়, সরাসরি $in বা ফিল্ড নাম দিয়ে খোঁজা যায়।
সিনট্যাক্স
ডেমো কলেকশন তৈরি
সকল ডকুমেন্ট দেখা
{ "_id" : ObjectId("5ca2360f66324ffac2a7dc71"), "StudentName" : "Chris", "StudentTechnicalSkills" : [ "MongoDB", "MySQL", "SQL Server" ] } { "_id" : ObjectId("5ca2362766324ffac2a7dc72"), "StudentName" : "Robert", "StudentTechnicalSkills" : [ "C", "Java", "C++" ] }"MongoDB" স্কিল থাকা ডকুমেন্ট খোঁজা ($in)
আউটপুট
সিম্পল কোয়েরি (একই ফলাফল - আরও সহজ)
তুলনা: কখন কী ব্যবহার করবেন
| অ্যারে টাইপ | কোয়েরি | অপারেটর |
|---|---|---|
| সিম্পল ভ্যালু অ্যারে (স্ট্রিং/নাম্বার) | {field: "value"} | সহজতর, স্ট্যান্ডার্ড |
| সিম্পল অ্যারে, একাধিক মান (OR) | {field: {$in: ["A", "B"]}} | $in |
| অবজেক্ট অ্যারে, একাধিক শর্ত (AND) | {field: {$elemMatch: {a:1, b:2}}} | $elemMatch (বাধ্যতামূলক) |
| অবজেক্ট অ্যারে, একক শর্ত | {"field.a": 1} | ডট নোটেশন |
$elemMatch এর প্রয়োজনীয়তা
85 উভয় মিলে (একই অবজেক্টে)
db.collection.find({ scores: { $elemMatch: { subject: "Math", score: { $gt: 85 } } } })
নোট
- সিম্পল অ্যারেতে
$elemMatchঅপ্রয়োজনীয় ওভারহেড যোগ করে - MongoDB অটোমেটিক্যালি সিম্পল অ্যারে মান ম্যাচ করে
$inব্যবহার করুন একাধিক মান OR শর্তের জন্য