U kunt een tekstindex toevoegen aan uw Mongoose-schemadefinitie waarmee u de $text
. kunt gebruiken operator in uw find
zoekopdrachten om alle velden in de tekstindex te doorzoeken.
Om een index te maken ter ondersteuning van het zoeken naar tekst op bijvoorbeeld name
en profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Of als u alle stringvelden in de index wilt opnemen, gebruikt u de '$**'
wildcard:
schema.index({'$**': 'text'});
Dit zou u in staat stellen om een zoekopdracht met paginatekst uit te voeren zoals:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Lees voor meer details de volledige MongoDB Text Indexes-documentatie.