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

MongoDB-এ রেগুলার এক্সপ্রেশন ব্যবহার করে নির্দিষ্ট রেকর্ড কিভাবে মিলিয়বেন?

MongoDB-এ স্ট্রিং ফিল্ডে প্যাটার্ন ম্যাচিং করতে রেগুলার এক্সপ্রেশন (Regex) ব্যবহার করুন। কেস-সেনসিটিভ এবং কেস-ইনসেনসিটিভ দুভাবেই করা যায়।

উদাহরণ

বিভিন্ন কেসের নাম সহ ডকুমেন্ট তৈরি করুন:

> db.workingOfRegularExpressionDemo.insertOne({ "StudentDetails": { "StudentName": "John" }, "StudentAge": 21 });
{ "acknowledged" : true, "insertedId" : ObjectId("5cf227acb64a577be5a2bc07") }

> db.workingOfRegularExpressionDemo.insertOne({ "StudentDetails": { "StudentName": "JOHN" }, "StudentAge": 19 });
{ "acknowledged" : true, "insertedId" : ObjectId("5cf227b8b64a577be5a2bc08") }

> db.workingOfRegularExpressionDemo.insertOne({ "StudentDetails": { "StudentName": "Carol" }, "StudentAge": 20 });
{ "acknowledged" : true, "insertedId" : ObjectId("5cf227c2b64a577be5a2bc09") }

সকল ডকুমেন্ট দেখুন:

> db.workingOfRegularExpressionDemo.find();

আউটপুট:

{ "_id" : ObjectId("5cf227acb64a577be5a2bc07"), "StudentDetails" : { "StudentName" : "John" }, "StudentAge" : 21 }
{ "_id" : ObjectId("5cf227b8b64a577be5a2bc08"), "StudentDetails" : { "StudentName" : "JOHN" }, "StudentAge" : 19 }
{ "_id" : ObjectId("5cf227c2b64a577be5a2bc09"), "StudentDetails" : { "StudentName" : "Carol" }, "StudentAge" : 20 }

কেস-সেনসিটিভ ম্যাচ: "JOHN" (শুধু বড় হাতের)

> db.workingOfRegularExpressionDemo.find({ 'StudentDetails.StudentName': /JOHN/ });

আউটপুট:

{ "_id" : ObjectId("5cf227b8b64a577be5a2bc08"), "StudentDetails" : { "StudentName" : "JOHN" }, "StudentAge" : 19 }

কেস-ইনসেনসিটিভ ম্যাচ: "john", "John", "JOHN", "JoHn" সব

> db.workingOfRegularExpressionDemo.find({ 'StudentDetails.StudentName': /JOHN/i });

আউটপুট:

{ "_id" : ObjectId("5cf227acb64a577be5a2bc07"), "StudentDetails" : { "StudentName" : "John" }, "StudentAge" : 21 }
{ "_id" : ObjectId("5cf227b8b64a577be5a2bc08"), "StudentDetails" : { "StudentName" : "JOHN" }, "StudentAge" : 19 }
{ "_id" : ObjectId("5cf227c2b64a577be5a2bc09"), "StudentDetails" : { "StudentName" : "Carol" }, "StudentAge" : 20 }

ব্যাখ্যা:

  • /pattern/ — জাভাস্ক্রিপ্ট রেগেক্স সিনট্যাক্স।
  • /pattern/i — i ফ্ল্যাগ কেস-ইনসেনসিটিভ করে।
  • $regex অপারেটরও ব্যবহার করা যায়: {$regex: "JOHN", $options: "i"}।

সতর্কতা: রেগেক্স ইনডেক্স ব্যবহার করে না (prefix regex ছাড়া), বড় ডেটাসেটে ধীর হতে পারে।

  1. পাইথনে রেগুলার এক্সপ্রেশন উদাহরণসহ

  2. পাইথনে 'a' বা 'b' ম্যাচ করার রেগুলার এক্সপ্রেশন কীভাবে লিখবেন?

  3. পাইথন রেগুলার এক্সপ্রেশন: search vs match ব্যাখ্যা

  4. পাইথন রেগুলার এক্সপ্রেশনে প্যarethেসিস ম্যাচ করবেন?