$text और $search ऑपरेटर का उपयोग करना
एकाधिक फ़ील्ड में टेक्स्ट खोज करने के लिए, पहले संग्रह पर एक टेक्स्ट इंडेक्स बनाएं, फिर $text और $search का उपयोग करें।
उदाहरण: नमूना डेटा
> 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 }
टेक्स्ट इंडेक्स बनाना (आवश्यक)
> db.searchMultipleFieldsDemo.createIndex({ "FirstSubject": "text", "SecondSubject": "text" })
खोज क्वेरी
> db.searchMultipleFieldsDemo.find({ "$text": { "$search": "Java MongoDB" } });
आउटपुट:
व्याख्या:
$search: "Java MongoDB""Java" या "MongoDB" वाले दस्तावेज़ ढूंढता है (OR तर्क)।- परिणाम डिफ़ॉल्ट रूप से टेक्स्ट स्कोर द्वारा क्रमबद्ध होते हैं।
- सटीक वाक्यांश के लिए उद्धरण चिह्नों का उपयोग करें:
"\"Java MongoDB\""। - शब्द को बाहर करने के लिए ऋण चिह्न:
"Java -MongoDB"।
नोट: एक संग्रह पर केवल एक टेक्स्ट इंडेक्स हो सकता है, लेकिन यह एकाधिक फ़ील्ड को कवर कर सकता है।