MongoDB-তে রেগুলার এক্সপ্রেশন ব্যবহার করে শুধু নমেরিক স্ট্রিং সিলেক্ট করা
MongoDB-তে কোনো স্ট্রিং ফিল্ডে শুধু সংখ্যা (০-৯) দিয়ে গঠিত স্ট্রিংগুলো খুঁজে বের করতে রেগুলার এক্সপ্রেশন /^\d+$/ ব্যবহার করা হয়।
ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন
> db.selectOnlyNumericDemo.insertOne({"UserId":"User101"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb711de8cc557214c0e16") }
> db.selectOnlyNumericDemo.insertOne({"UserId":"102"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb716de8cc557214c0e17") }
> db.selectOnlyNumericDemo.insertOne({"UserId":"User103"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb71dde8cc557214c0e18") }
> db.selectOnlyNumericDemo.insertOne({"UserId":"104"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cbdb725de8cc557214c0e19") }
ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন
> db.selectOnlyNumericDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5cbdb711de8cc557214c0e16"),
"UserId" : "User101"
}
{
"_id" : ObjectId("5cbdb716de8cc557214c0e17"),
"UserId" : "102"
}
{
"_id" : ObjectId("5cbdb71dde8cc557214c0e18"),
"UserId" : "User103"
}
{
"_id" : ObjectId("5cbdb725de8cc557214c0e19"),
"UserId" : "104"
}
ধাপ ৩: শুধু নমেরিক স্ট্রিং (UserId শুধু সংখ্যা) সিলেক্ট করুন
> db.selectOnlyNumericDemo.find({'UserId': /^\d+$/});
ফলাফল:
{
"_id" : ObjectId("5cbdb716de8cc557214c0e17"),
"UserId" : "102"
}
{
"_id" : ObjectId("5cbdb725de8cc557214c0e19"),
"UserId" : "104"
}
Regex প্যাটার্ন ব্যাখ্যা: /^\d+$/
^- স্ট্রিংয়ের শুরু\d- ডিজিট (০-৯)+- এক বা একাধিকবার (one or more)$- স্ট্রিংয়ের শেষ- অর্থ: স্ট্রিংটি শুরু থেকে শেষ পর্যন্ত শুধু ডিজিট দিয়ে গঠিত
অন্যান্য Regex প্যাটার্ন উদাহরণ:
| Regex | ম্যাচ করবে |
|---|---|
/^\d+$/ | শুধু পজিটিভ ইন্টিজার স্ট্রিং ("123", "0", "999") |
/^-?\d+$/ | নেগেটিভ/পজিটিভ ইন্টিজার ("-123", "456") |
/^\d+(\.\d+)?$/ | ডেসিমাল নম্বর ("12.34", "5.0") |
/^-?\d+(\.\d+)?$/ | সাইনসহ ডেসিমাল ("-12.34", "+5.6") |
দ্রষ্টব্য: এটি স্ট্রিং ফিল্ডের জন্য কাজ করে। নমেরিক টাইপ (Int, Double) ফিল্ডের জন্য {$type: "number"} বা {$type: [1, 16, 18, 19]} ব্যবহার করুন।