आप अपनी Mongoose स्कीमा परिभाषा में एक टेक्स्ट इंडेक्स जोड़ सकते हैं जो आपको $text
. का उपयोग करने देता है अपने find
. में ऑपरेटर टेक्स्ट इंडेक्स में शामिल सभी फ़ील्ड को खोजने के लिए क्वेरीज़।
टेक्स्ट खोज का समर्थन करने के लिए एक इंडेक्स बनाने के लिए, कहें, name
और profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
या यदि आप अनुक्रमणिका में सभी स्ट्रिंग फ़ील्ड शामिल करना चाहते हैं, तो '$**'
. का उपयोग करें वाइल्डकार्ड:
schema.index({'$**': 'text'});
यह आपको एक पृष्ठांकित पाठ खोज क्वेरी करने में सक्षम करेगा जैसे:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
अधिक विवरण के लिए, संपूर्ण MongoDB टेक्स्ट इंडेक्स दस्तावेज़ पढ़ें।