आप जिस फ़ील्ड को खोजना चाहते हैं, उस पर आपको एक टेक्स्ट इंडेक्स बनाना चाहिए:
db.deals.ensureIndex({ name: "text", description : "text", category : "text" });
$text ऑपरेटर के दस्तावेज़ीकरण से:
<ब्लॉकक्वॉट>$text टेक्स्ट इंडेक्स के साथ अनुक्रमित फ़ील्ड की सामग्री पर टेक्स्ट खोज करता है।
आपने अपने तीन क्षेत्रों के लिए जो अनुक्रमणिका बनाई है वह एक मिश्रित अनुक्रमणिका है, पाठ अनुक्रमणिका नहीं। टेक्स्ट इंडेक्स इस तरह दिखेगा:
{
"v" : 1,
"key" : {
"_fts" : "text",
"_ftsx" : 1
},
"name" : "name_text_description_text_category_text",
"ns" : "test.deals",
"weights" : {
"category" : 1,
"description" : 1,
"name" : 1
},
"default_language" : "english",
"language_override" : "language",
"textIndexVersion" : 2
}