$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 দিয়ে রেগেক্স সার্চ করা যায় (স্লোتر)।