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

MongoDB-এ রেগুলার এক্সপ্রেশন দিয়ে ডকুমেন্ট খুঁজে বের করা


রেগুলার এক্সপ্রেশন দিয়ে সার্চ: $regex

MongoDB-এ আংশিক মিল বা প্যাটার্ন ম্যাচিংয়ের জন্য $regex অপারেটর ব্যবহার করা হয়। কেস-ইনসেনসিটিভ সার্চের জন্য $options: "i" ব্যবহার করা হয়।

নমুনা ডেটা তৈরি

> db.demo469.insertOne({ "StudentName": "John Doe" })
> db.demo469.insertOne({ "StudentName": "Chris Brown" })
> db.demo469.insertOne({ "StudentName": "John Smith" })
> db.demo469.insertOne({ "StudentName": "Jace Doe" })
> db.demo469.insertOne({ "StudentName": "David Miller" })

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

> db.demo469.find()

আউটপুট:

{ "_id": ObjectId("..."), "StudentName": "John Doe" }
{ "_id": ObjectId("..."), "StudentName": "Chris Brown" }
{ "_id": ObjectId("..."), "StudentName": "John Smith" }
{ "_id": ObjectId("..."), "StudentName": "Jace Doe" }
{ "_id": ObjectId("..."), "StudentName": "David Miller" }

"john" শব্দ ধারণকারী নাম খুঁজে বের করা (কেস-ইনসেনসিটিভ)

> db.demo469.find({ 'StudentName': { '$regex': 'john', '$options': 'i' } })

ফলাফল:

{ "_id": ObjectId("..."), "StudentName": "John Doe" }
{ "_id": ObjectId("..."), "StudentName": "John Smith" }

ব্যাখ্যা

  • $regex: 'john': প্যাটার্ন "john" খুঁজে বের করবে
  • $options: 'i': কেস-ইনসেনসিটিভ (John, jOHN, JOHN সব মিলবে)
  • অন্যান্য অপশন: m (মাল্টিলাইন), s (ডট ম্যাচস নিউলাইন), x (ভার্বোজ)
  • পারফরম্যান্স নোট: রেগেক্স إنডেক্স ব্যবহার করতে পারে না যদি এটি এনকর (^) দিয়ে শুরু না হয়। প্রিফিক্স সার্চের জন্য ^john ব্যবহার করুন
  • বড় ডেটাসেটে টেক্সট ইন্ডেক্স ($text) ভালো পারফরম্যান্স দেয়
  1. MongoDB ডকুমেন্ট ডিসেন্ডিং অর্ডারে সর্ট করা

  2. MongoDB-তে সিম্পল কুয়েরি ব্যবহার করে ডকুমেন্ট ফিল্টার করা

  3. MongoDB শেল-এ নির্দিষ্ট মান অনুযায়ী ডকুমেন্ট ফিল্টার করে প্রিন্ট করা

  4. MongoDB-তে নির্দিষ্ট মান থেকে বড় বা সমান ভ্যালু খোঁজা ($gte)