MongoDB-এ $regex অপারেটর ব্যবহার করে প্যাটার্ন ম্যাচিং
MongoDB-এ রেগুলার এক্সপ্রেশন (Regex) ব্যবহার করে ডকুমেন্ট ফিল্টার করার জন্য $regex অপারেটর ব্যবহৃত হয়। এটি কেস-ইনসেনসিটিভ সার্চের জন্যও উপযোগী।
১. কালেকশন ও নমুনা ডেটা তৈরি
> db.demo19.insertOne({"Values":"4321GH"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e1389b955d0fc6657d21f0f") }
> db.demo19.insertOne({"Values":"12321_Carol"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e1389c755d0fc6657d21f10") }
> db.demo19.insertOne({"Values":"8765Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e1389d355d0fc6657d21f11") }
২. সব ডকুমেন্ট দেখানো
> db.demo19.find();
আউটপুট:
{ "_id" : ObjectId("5e1389b955d0fc6657d21f0f"), "Values" : "4321GH" }
{ "_id" : ObjectId("5e1389c755d0fc6657d21f10"), "Values" : "12321_Carol" }
{ "_id" : ObjectId("5e1389d355d0fc6657d21f11"), "Values" : "8765Mike" }
৩. Regex দিয়ে সার্চ করা (4321 বা 8765 দিয়ে শুরু হওয়া মান)
> db.demo19.find({Values: {$regex: /4321|8765/, $options: 'i'}});
ব্যাখ্যা:
/4321|8765/- এই প্যাটার্ন মানে "4321" বা "8765" দিয়ে শুরু হওয়া স্ট্রিং।$options: 'i'- কেস-ইনসেনসিটিভ (Case-insensitive) সার্চের জন্য।
৪. ফলাফল
{ "_id" : ObjectId("5e1389b955d0fc6657d21f0f"), "Values" : "4321GH" }
{ "_id" : ObjectId("5e1389d355d0fc6657d21f11"), "Values" : "8765Mike" }
শুধু "4321GH" এবং "8765Mike" ডকুমেন্টগুলো ফলাফলে আসেছে, কারণ এগুলো নির্দিষ্ট প্যাটার্নের সাথে মিলে যাচ্ছে।