Do definice schématu Mongoose můžete přidat textový index, který vám umožní použít $text
operátor ve vašem find
dotazy k prohledání všech polí zahrnutých v textovém indexu.
Chcete-li vytvořit index pro podporu textového vyhledávání, řekněme name
a profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Nebo pokud chcete do indexu zahrnout všechna pole řetězců, použijte '$**'
zástupný znak:
schema.index({'$**': 'text'});
To vám umožní provést stránkovaný textový vyhledávací dotaz jako:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Další podrobnosti najdete v úplné dokumentaci textových indexů MongoDB.