MongoDB-এ অবজেক্টের অ্যারেতে একাধিক শর্ত পূরণকারী এলিমেন্ট খুঁজতে $elemMatch অপারেটর ব্যবহার করা হয়।
উদাহরণ ডেটা (EmployeeDetails অবজেক্টের অ্যারে):
> db.searchArrayDemo.insertOne({
"EmployeeFirstName": "Adam",
"EmployeeLastName": "Smith",
"EmployeeDateOfBirth": ISODate("1992-01-31T13:45:10Z"),
"EmployeeSkills": ["Spring and Hibernate Framework", "Machine Learning"],
"EmployeeDetails": [
{"EmployeePerformanceArea": "Java", "Year": 2001},
{"EmployeePerformanceArea": "Python", "Year": 2005}
]
});
> db.searchArrayDemo.insertOne({
"EmployeeFirstName": "Carol",
"EmployeeLastName": "Taylor",
"EmployeeDateOfBirth": ISODate("1993-04-21T11:10:20Z"),
"EmployeeSkills": ["C++", "Cloud Computing"],
"EmployeeDetails": [
{"EmployeePerformanceArea": "C++", "Year": 1998},
{"EmployeePerformanceArea": "C++ Game Developer", "Year": 2007}
]
});
কেস ১: EmployeePerformanceArea "C++" এবং Year 1998 মিলে যাওয়া এলিমেন্ট খুঁজা
> db.searchArrayDemo.find({EmployeeDetails: {$elemMatch: {EmployeePerformanceArea: "C++", Year: 1998}}}).pretty();
ফলাফল: Carol-এর ডকুমেন্ট ফেরত আসবে।
কেস ২: অস্তিত্বহীন কম্বিনেশন (C, 1996) খুঁজা
> db.searchArrayDemo.find({EmployeeDetails: {$elemMatch: {EmployeePerformanceArea: "C", Year: 1996}}}).pretty();
ফলাফল: কোনো ডকুমেন্ট ফেরত আসবে না।
$elemMatch নিশ্চিত করে যে একই অবজেক্টের ভেতর দুটি শর্ত পূরণ হচ্ছে।