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

MongoDB-এ URL রেকর্ড থেকে নির্দিষ্ট ডোমেইন নাম সার্চ করা

MongoDB-এ URL বা ডোমেইন ফিল্ডে কেস-ইনসেনসিটিভ (case-insensitive) সার্চ করতে রেগুলার এক্সপ্রেশনে /i ফ্ল্যাগ ব্যবহার করা হয়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo219.insertOne({"details":{"WebsiteURL":"www.EXAMPLE.com"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e667203d395bdc2134718") }
> db.demo219.insertOne({"details":{"WebsiteURL":"www.gmail.com"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e667803d395bdc2134719") }
> db.demo219.insertOne({"details":{"WebsiteURL":"www.example.com"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e667f03d395bdc213471a") }

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

> db.demo219.find();

আউটপুট:

{ "_id" : ObjectId("5e3e667203d395bdc2134718"), "details" : { "WebsiteURL" : "www.EXAMPLE.com" } }
{ "_id" : ObjectId("5e3e667803d395bdc2134719"), "details" : { "WebsiteURL" : "www.gmail.com" } }
{ "_id" : ObjectId("5e3e667f03d395bdc213471a"), "details" : { "WebsiteURL" : "www.example.com" } }

নির্দিষ্ট ডোমেইন সার্চ করার কোয়ারী

/example/i রেগুলার এক্সপ্রেশন ব্যবহার করে "example" শব্দ কেস-ইনসেনসিটিভভাবে খুঁজে বের করা হয়েছে:

> db.demo219.find({"details.WebsiteURL": /example/i});

ফলাফল

{ "_id" : ObjectId("5e3e667203d395bdc2134718"), "details" : { "WebsiteURL" : "www.EXAMPLE.com" } }
{ "_id" : ObjectId("5e3e667f03d395bdc213471a"), "details" : { "WebsiteURL" : "www.example.com" } }

ব্যাখ্যা: "EXAMPLE.com" (আপারকেস) এবং "example.com" (লোয়ারকেস) - দুটোই "example" প্যাটার্নে মেলেছে /i ফ্ল্যাগের কারণে। "gmail.com" মেলেনি।

রেগুলার এক্সপ্রেশন ফ্ল্যাগসমূহ:

  • i - কেস-ইনসেনসিটিভ
  • m - মাল্টিলাইন (^ এবং $ লাইন-ব্রেকে মেলাবে)
  • x - এক্সটেনডেড (whitespace এবং কমেন্ট игноর)
  • s - ডট (.) নিউলাইনও মেলাবে

$regex অপারেটর সিনট্যাক্স (ডাইনামিক প্যাটার্নের জন্য):

db.demo219.find({ "details.WebsiteURL": { $regex: "example", $options: "i" } })

ডোমেইন-স্পেসিফিক সার্চ (সাবডোমেইন এড়াতে):

// "example.com" এক্সাক্ট ডোমেইন (সাবডোমেইন বাদে)
db.demo219.find({ "details.WebsiteURL": { $regex: "^https?://([^/]+\\.)?example\\.com", $options: "i" } })

পারফরম্যান্স নোট: রেজেক্স সাধারণত ইনডেক্স ব্যবহার করে না। বড় ডেটাসেটে:

  • টেক্সট ইনডেক্স + $text কোয়ারী (ফুল-টেক্সট সার্চ)
  • আপারকেস/লোয়ারকেস নরমালাইজড ফিল্ড আলাদা রাখুন
  • Atlas Search বা Elasticsearch ইন্টিগ্রেশন
  1. MongoDB শেল-এ নির্দিষ্ট মান অনুযায়ী ডকুমেন্ট ফিল্টার করে প্রিন্ট করা

  2. MongoDB-তে শর্তের উপর ভিত্তি করে রেকর্ড খোঁজা (find with condition)

  3. MongoDB-তে $in অপারেটর ব্যবহার করে নির্দিষ্ট একাধিক ডকুমেন্ট বের করা

  4. MongoDB-এ ডকুমেন্ট থেকে নির্দিষ্ট ভ্যালু ফিল্টার করা ($filter)