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

MongoDB-এ "Like" কোয়েরি ইমপ্লিমেন্ট করা (Regex ব্যবহার করে)

MongoDB-এ SQL-এর LIKE অপারেটরের মতো প্যাটার্ন ম্যাচিং করার জন্য Регуляр এক্সপ্রেশন (Regular Expression / Regex) ব্যবহার করা হয়। MongoDB-এ Regex লিখতে ফরওয়ার্ড স্ল্যাশ (/pattern/) ব্যবহার করা হয়।

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

> db.demo554.insertOne({"UserName":"John","UserMailId":"John@gmail.com"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f1cfed1d72c4545cb8679") }
> db.demo554.insertOne({"UserName":"Chris","UserMailId":"Chris@gmail.com"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f1d0cd1d72c4545cb867a") }
> db.demo554.insertOne({"UserName":"Jace","UserMailId":"Jace@gmail.com"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f1d1cd1d72c4545cb867b") }

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

> db.demo554.find();

আউটপুট:

{ "_id" : ObjectId("5e8f1cfed1d72c4545cb8679"), "UserName" : "John", "UserMailId" : "John@gmail.com" }
{ "_id" : ObjectId("5e8f1d0cd1d72c4545cb867a"), "UserName" : "Chris", "UserMailId" : "Chris@gmail.com" }
{ "_id" : ObjectId("5e8f1d1cd1d72c4545cb867b"), "UserName" : "Jace", "UserMailId" : "Jace@gmail.com" }

Regex ব্যবহার করে "J" দিয়ে শুরু হওয়া নাম বা ইমেইল খোঁজা

> db.demo554.find({
    $or: [
      { "UserName": /J/ },
      { "UserMailId": /J/ }
    ]
});

কোয়েরির ব্যাখ্যা

  • /J/ — এই Regex মানে "J" অক্ষর 어ো থাকবে (কেস-সেনসিটিভ)।
  • $or — দুটি শর্তের যেকোনো একটিই সত্য হলে ডকুমেন্ট রিটার্ন করবে।
  • এখানে "John" এবং "Jace" দুটোই "J" দিয়ে শুরু হয়েছে, তাই দুটি রিটার্ন হবে।

আউটপুট

{ "_id" : ObjectId("5e8f1cfed1d72c4545cb8679"), "UserName" : "John", "UserMailId" : "John@gmail.com" }
{ "_id" : ObjectId("5e8f1d1cd1d72c4545cb867b"), "UserName" : "Jace", "UserMailId" : "Jace@gmail.com" }

উন্নত Regex প্যাটার্ন

প্যাটার্নঅর্থ
/^J/"J" দিয়ে শুরু হয় (Beginning)
/J$/"J" দিয়ে শেষ হয় (End)
/^J.*/"J" দিয়ে শুরু হয়, এরপর যেকোনো ক্যারেক্টার
/J/iকেস-ইনসেনসিটিভ (Case-insensitive) — "j" বা "J" দুইটোই ম্যাচ করবে

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

  • MongoDB-এ Regex Perl-কম্প্যাটিবল (PCRE) সিনট্যাক্স ফলো করে।
  • Regex কেস-সেনসিটিভ হয় ডিফল্টে; i অপশন দিয়ে কেস-ইনসেনসিটিভ করা যায়।
  • বড় ডেটাসেটে Regex ধীর হতে পারে; সম্ভব হলে ^pattern (prefix) ব্যবহার করুন যাতে ইন্ডেক্স ব্যবহার করতে পারে।
  • $or ব্যবহার করে একাধিক ফিল্ডে একই প্যাটার্ন খোঁজা যায়।
  1. MongoDB-তে ফাইল নাম এবং লোকেশন সংরক্ষণ

  2. MongoDB-এ "Like" কোয়েরি ইমপ্লিমেন্ট করা (Regex ব্যবহার করে)

  3. MongoDB-এ কেস-ইনসেনসিটিভ (Case-Insensitive) নাম দিয়ে ডকুমেন্ট খোঁজা ($regex /^name$/i)

  4. MongoDB-এ নির্দিষ্ট FirstName এবং LastName সম্বয় ডকুমেন্ট খোঁজা ($and + $in)