Puoi aggiungere un indice di testo alla definizione dello schema Mongoose che ti consente di utilizzare il $text
operatore nel tuo find
query per cercare tutti i campi inclusi nell'indice di testo.
Per creare un indice su cui supportare la ricerca di testo, ad esempio name
e profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Oppure, se vuoi includere tutti i campi stringa nell'indice, usa il '$**'
carattere jolly:
schema.index({'$**': 'text'});
Ciò ti consentirebbe di eseguire una query di ricerca di testo paginata come:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Per maggiori dettagli, leggi la documentazione completa sugli indici di testo di MongoDB.