MongoDB-তে $all অপারেটর ব্যবহার করে অ্যারে সাবসেট কোয়েরি করা
MongoDB-তে কোনো অ্যারে ফিল্ডে নির্দিষ্ট একাধিক ভ্যালু সবগুলো থাকা ডকুমেন্ট খুঁজে বের করতে $all অপারেটর ব্যবহার করা হয়।
ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন
> db.subsetOfAnArrayDemo.insertOne({
"StudentProgrammingSkills": [
"Java", "MongoDB", "MySQL", "C++", "Data Structure", "Algorithm", "Python", "Oracle", "SQL Server"
]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb9d1e1895c4fd159f80804") }
ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন
> db.subsetOfAnArrayDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5cb9d1e1895c4fd159f80804"),
"StudentProgrammingSkills" : [
"Java",
"MongoDB",
"MySQL",
"C++",
"Data Structure",
"Algorithm",
"Python",
"Oracle",
"SQL Server"
]
}
ধাপ ৩: সাবসেট কোয়েরি করুন (MongoDB এবং MySQL দুটোই থাকা ডকুমেন্ট)
> db.subsetOfAnArrayDemo.find({
StudentProgrammingSkills: {
$all: ['MongoDB', 'MySQL']
}
}).pretty();
ফলাফল:
{
"_id" : ObjectId("5cb9d1e1895c4fd159f80804"),
"StudentProgrammingSkills" : [
"Java",
"MongoDB",
"MySQL",
"C++",
"Data Structure",
"Algorithm",
"Python",
"Oracle",
"SQL Server"
]
}
ব্যাখ্যা: $all অপারেটরটি নির্দিষ্ট করে যে অ্যারে ফিল্ডে প্রদত্ত সব ভ্যালুগুলো উপস্থিত থাকতে হবে (অর্ডার 상관 নেই)। এখানে ['MongoDB', 'MySQL'] দুটোই StudentProgrammingSkills অ্যারেতে থাকা ডকুমেন্টটি রিটার্ন হয়েছে।
দ্রষ্টব্য: $in অপারেটর যেকোনো একটি মিল খায়, কিন্তু $all সবগুলো মিল খুঁজে।