MongoDB-এ MySQL-এর LIKE অপারেটরের সমতুল্য কাজ করতে রেগুলার এক্সপ্রেশন (Regex) ব্যবহার করা হয়।
নমুনা ডেটা তৈরি করা
likeInMongoDBDemo কালেকশনে পাঁচটি ডকুমেন্ট ইনসার্ট করি।
> db.likeInMongoDBDemo.insertOne({"Name" : "Sam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6922857806ebf1256f123") }
> db.likeInMongoDBDemo.insertOne({"Name" : "John" });
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6923157806ebf1256f124") }
> db.likeInMongoDBDemo.insertOne({"Name" : "Scott"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6924557806ebf1256f125") }
> db.likeInMongoDBDemo.insertOne({"Name" : "Sean"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6924f57806ebf1256f126") }
> db.likeInMongoDBDemo.insertOne({"Name" : "Samuel"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6925857806ebf1256f127") }
সকল ডকুমেন্ট দেখানো
> db.likeInMongoDBDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cd6922857806ebf1256f123"), "Name" : "Sam" }
{ "_id" : ObjectId("5cd6923157806ebf1256f124"), "Name" : "John" }
{ "_id" : ObjectId("5cd6924557806ebf1256f125"), "Name" : "Scott" }
{ "_id" : ObjectId("5cd6924f57806ebf1256f126"), "Name" : "Sean" }
{ "_id" : ObjectId("5cd6925857806ebf1256f127"), "Name" : "Samuel" }
Regex দিয়ে LIKE-এর মত খোঁজা
"Sam" দিয়ে শুরু হওয়া নাম খুঁজতে (MySQL-এ LIKE 'Sam%'):
> db.likeInMongoDBDemo.find({"Name":{$regex:"Sam"}});
আউটপুট:
{ "_id" : ObjectId("5cd6922857806ebf1256f123"), "Name" : "Sam" }
{ "_id" : ObjectId("5cd6925857806ebf1256f127"), "Name" : "Samuel" }
Regex প্যাটার্ন:
^Sam— "Sam" দিয়ে শুরুSam$— "Sam" দিয়ে শেষ^Sam$— সঠিক "Sam"Sam— যেকোনো জায়গায় "Sam" (উপরের উদাহরণ)/Sam/i— কেস-ইনসেনসিটিভ
নোট: বড় ডেটাসেটে রেজেক্স পারফরম্যান্স ধীর হতে পারে। টেক্সট ইনডেক্স বা এटलাস সার্চ ব্যবহার করুন।