MongoDB অ্যাগ্রিগেশনে $match স্টেজে $and অপারেটর ব্যবহার করে একাধিক শর্ত একসাথে লাগিয়ে ডকুমেন্ট ফিল্টার করা হয়। এটি কোয়েরি অপটিমাইজেশনে সাহায্য করে।
উদাহরণ: গভীর নেস্টেড স্ট্রাকচার
> db.demo574.insertOne({
"details1": {
"details2": {
"dueDate": new ISODate("2020-01-10"),
"Name": "Chris",
"UserInformation": { "Name": "John", "Marks": 78 },
"CountryName": "US"
}
},
"id": 101
});
অ্যাগ্রিগেশন: তিনটি শর্ত একসাথে মিলিয়ে ফিল্টার
> db.demo574.aggregate({
$match: {
$and: [
{ "details1.id": 101 },
{ "details1.details2.UserInformation.Name": 'John' },
{ "details1.details2.Name": 'Chris' }
]
}
});
আউটপুট: শর্ত পূরণকারী ডকুমেন্ট রিটার্ন হয়।
ব্যাখ্যা:
$and- সব শর্ত সত্য হতে হবে (লজিক্যাল AND)- ডট নোটেশন দিয়ে গভীর নেস্টেড ফিল্ড এক্সেস করা হয়েছে
$matchপাইপলাইনের শুরুতে রাখলে ইন্ডেক্স ব্যবহার করে দ্রুত ফিল্টার হয়- ইমপ্লিসিট AND:
{ "a": 1, "b": 2 }ও কাজ করে, কিন্তু$andস্পষ্ট এবং এক্সপ্রেশন ব্যবহারের সুবিধা দেয়