কম্পিউটার টিউটোরিয়াল

MongoDB-এ কেস-ইনসেনসিটিভ (Case-Insensitive) "Like" কোয়েরি (Regex /i)

MongoDB-এ SQL-এর LIKE-এর মতো কেস-ইনসেনসিটিভ (case-insensitive) প্যাটার্ন ম্যাচিং করার জন্য Regex-এ i অপশন (flag) ব্যবহার করা হয়। সিনট্যাক্স: /pattern/i।

উদাহরণ: কালেকশন ও ডেটা তৈরি

> db.demo686.insertOne({"FirstName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea55182a7e81adc6a0b395c") }
> db.demo686.insertOne({"FirstName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea55186a7e81adc6a0b395d") }
> db.demo686.insertOne({"FirstName":"ROBERT"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea5518fa7e81adc6a0b395e") }
> db.demo686.insertOne({"FirstName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea55195a7e81adc6a0b395f") }
> db.demo686.insertOne({"FirstName":"robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea5519ba7e81adc6a0b3960") }

সব ডকুমেন্ট দেখানো

> db.demo686.find();

আউটপুট:

{ "_id" : ObjectId("5ea55182a7e81adc6a0b395c"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5ea55186a7e81adc6a0b395d"), "FirstName" : "John" }
{ "_id" : ObjectId("5ea5518fa7e81adc6a0b395e"), "FirstName" : "ROBERT" }
{ "_id" : ObjectId("5ea55195a7e81adc6a0b395f"), "FirstName" : "David" }
{ "_id" : ObjectId("5ea5519ba7e81adc6a0b3960"), "FirstName" : "robert" }

Regex /Robert/i দিয়ে কেস-ইনসেনসিটিভ সার্চ

> db.demo686.find({ FirstName: /Robert/i });

আউটপুট

{ "_id" : ObjectId("5ea55182a7e81adc6a0b395c"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5ea5518fa7e81adc6a0b395e"), "FirstName" : "ROBERT" }
{ "_id" : ObjectId("5ea5519ba7e81adc6a0b3960"), "FirstName" : "robert" }

"Robert", "ROBERT", "robert" — তিনটি কেস-ইনসেনসিটিভ ম্যাচ করেছে। "John" এবং "David" ম্যাচ করেনি।

Regex ফ্ল্যাগ (Options) রেফারেন্স

ফ্ল্যাগনামবর্ণনা
iCase-insensitiveবড়/ছোট হাতের অক্ষর পার্থক্য করবে না
mMultiline^ এবং $ লাইন শুরুর/শেষে ম্যাচ করবে
sDotall. নিউলাইন (\n) ও ম্যাচ করবে
xExtendedRegex-এ হোয়াইটস্পেস ও কমেন্ট игনোর করবে

মূল পয়েন্টসমূহ

  • /pattern/i — কেস-ইনসেনসিটিভ ম্যাচ।
  • /^pattern$/i — এক্সাক্ট ম্যাচ (whole string) কেস-ইনসেনসিটিভ।
  • $regex অপারেটরও ব্যবহার করা যায়: { field: { $regex: "pattern", $options: "i" } }।
  • Regex কেস-সেনসিটিভ হয় ডিফল্টে।
  • বড় ডেটাসেটে Regex ধীর; প্রিফিক্স রেজেক্স (^prefix) ইন্ডেক্স ব্যবহার করতে পারে।
  1. MongoDB-তে LIMIT ব্যবহার করে কোয়ারি করার পদ্ধতি

  2. MongoDB কোয়ারিতে নির্দিষ্ট কলাম সিলেক্ট করা

  3. MongoDB-এ সাব-ডকুমেন্টসে ফাইন্ড কোয়েরি চালানো

  4. MySQL-এ ORDER BY LIKE প্যাটার্ন অনুযায়ী সর্ট করা (CASE WHEN)