जांचें कि आपके टेक्स्ट इंडेक्स को किस फ़ील्ड में परिभाषित किया गया है। अभी mongodb प्रति संग्रह केवल एक टेक्स्ट इंडेक्स की अनुमति देता है। इसलिए यदि आपने विवरण कॉलम पर एक टेक्स्ट इंडेक्स को परिभाषित किया है और किसी अन्य कॉलम पर उस इंडेक्स का उपयोग करने का प्रयास किया है तो आपको यह त्रुटि मिलनी तय है।
क्या आप अपनी अनुक्रमणिका को क्वेरी करने का प्रयास कर सकते हैं और देख सकते हैं कि आपने इसे किस कॉलम पर बनाया है। अनुक्रमणिका प्राप्त करने के लिए आप
. कर सकते हैंdb.collection.getIndexes()
और यह कुछ इस तरह लौटाएगा
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "some.ns"
},
{
"v" : 1,
"key" : {
"_fts" : "text",
"_ftsx" : 1
},
"name" : "desc_text",
"ns" : "some.ns",
"weights" : {
"title" : 1
},
"default_language" : "english",
"language_override" : "language",
"textIndexVersion" : 2
}
]
अब यदि आप अन्य कॉलम में भी इस इंडेक्स का उपयोग करना चाहते हैं तो बस इस इंडेक्स को छोड़ दें
db.collection.dropIndex('desc_text');
और फिर उन सभी कॉलमों को शामिल करके इसे फिर से बनाएं जिन्हें आप टेक्स्ट इंडेक्स द्वारा कवर करना चाहते हैं,
db.collection.createIndex({
title:'text;,
body: 'text;,
desc: 'text',
...... and so on
});