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

MongoDB-তে একাধিক ফিল্ডে একাধিক মান সার্চ কীভাবে করবেন?

$text এবং $search অপারেটর (টেক্স্ট ইনডেক্স দরকার)

একাধিক ফিল্ডে একসাথে টেক্সট সার্চ করার জন্য MongoDB-র $text ইনডেক্স এবং $search অপারেটর ব্যবহার করা হয়।

পূর্বশর্ত: টেক্স্ট ইনডেক্স তৈরি

db.searchMultipleFieldsDemo.createIndex({ "FirstSubject": "text", "SecondSubject": "text" })

উদাহরণ: ডকুমেন্ট তৈরি

> db.searchMultipleFieldsDemo.insertOne({"_id":100,"FirstSubject":"Java","SecondSubject":"MongoDB"});
{ "acknowledged" : true, "insertedId" : 100 }
> db.searchMultipleFieldsDemo.insertOne({"_id":101,"FirstSubject":"MongoDB","SecondSubject":"MySQL"});
{ "acknowledged" : true, "insertedId" : 101 }
> db.searchMultipleFieldsDemo.insertOne({"_id":102,"FirstSubject":"MySQL","SecondSubject":"Java"});
{ "acknowledged" : true, "insertedId" : 102 }

সার্চ: "Java" বা "MongoDB" যেকোনো ফিল্ডে

> db.searchMultipleFieldsDemo.find({ $text: { $search: "Java MongoDB" } });

আউটপুট: তিনों ডকুমেন্ট (প্রতিটিতে Java বা MongoDB আছে)।

ব্যাখ্যা

  • $search: "Java MongoDB" - "Java" OR "MongoDB" (স্পেস দিয়ে OR)
  • $search: "\"Java MongoDB\"" - সঠিক ফ্রেজ "Java MongoDB"
  • $search: "Java -MongoDB" - Java আছে কিন্তু MongoDB নেই

সীমাবদ্ধতা: টেক্স্ট ইনডেক্স বড় কালেকশনে স্পেস নেয়। বিকল্পভাবে $or দিয়ে রেগেক্স সার্চ করা যায় (স্লো‌تر)।

  1. MongoDB-এ একাধিক ফিল্ডের অস্তিত্ব চেক করা

  2. MongoDB এগ্রিগেশন: একাধিক ফিল্ড দিয়ে কাউন্ট করা

  3. MongoDB-এ "@email" স্ট্রিং সার্চ করা ফিল্ড ভ্যালুতে

  4. MongoDB $regex অপারেটর: কেস-ইনসেনসিটিভ সার্চ (i ফ্ল্যাগ)