Aggregation Pipeline-এ $or অপারেটর ব্যবহার করে একাধিক শর্ত মিলানো
MongoDB Aggregation-এ $match স্টেজের ভেতরে $or অপারেটর ব্যবহার করে একাধিক কন্ডিশন যেকোনো একটিই সত্য হলে ডকুমেন্ট সিলেক্ট করা যায়।
নমুনা ডেটা
> db.aggregationFrameworkWithOrMatchDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith","StudentAge":23});
> db.aggregationFrameworkWithOrMatchDemo.insertOne({"StudentFirstName":"Carol","StudentLastName":"Tayor","StudentAge":24});
> db.aggregationFrameworkWithOrMatchDemo.insertOne({"StudentFirstName":"David","StudentLastName":"Miller","StudentAge":21});
> db.aggregationFrameworkWithOrMatchDemo.insertOne({"StudentFirstName":"Bob","StudentLastName":"Taylor","StudentAge":20});
> db.aggregationFrameworkWithOrMatchDemo.insertOne({"StudentFirstName":"Robert","StudentLastName":"Smith","StudentAge":20});
> db.aggregationFrameworkWithOrMatchDemo.insertOne({"StudentFirstName":"Mike","StudentLastName":"Miller","StudentAge":27});
$or সহ Aggregation কোয়েরি
StudentLastName "Smith" অথবা "Miller" হলে:
> db.aggregationFrameworkWithOrMatchDemo.aggregate({
$match: { $or: [{ StudentLastName: 'Smith' }, { StudentLastName: 'Miller' }] }
}).pretty();
ফলাফল:
{
"_id" : ObjectId("5c8ac3a96cea1f28b7aa080d"),
"StudentFirstName" : "John", "StudentLastName" : "Smith", "StudentAge" : 23
}
{
"_id" : ObjectId("5c8ac3ce6cea1f28b7aa080f"),
"StudentFirstName" : "David", "StudentLastName" : "Miller", "StudentAge" : 21
}
{
"_id" : ObjectId("5c8ac3fb6cea1f28b7aa0811"),
"StudentFirstName" : "Robert", "StudentLastName" : "Smith", "StudentAge" : 20
}
{
"_id" : ObjectId("5c8ac4166cea1f28b7aa0812"),
"StudentFirstName" : "Mike", "StudentLastName" : "Miller", "StudentAge" : 27
}
টিপস: $match স্টেজ পাইপলাইনের শুরুতে রাখলে ইনডেক্স ব্যবহার করে পারফরম্যান্স ভালো হয়।