রেগুলার এক্সপ্রেশন দিয়ে সার্চ: $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) ভালো পারফরম্যান্স দেয়