Vous pouvez ajouter un index de texte à votre définition de schéma Mongoose qui vous permet d'utiliser le $text
opérateur dans votre find
requêtes pour rechercher tous les champs inclus dans l'index de texte.
Pour créer un index pour prendre en charge la recherche de texte sur, par exemple, name
et profile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Ou si vous souhaitez inclure tous les champs de chaîne dans l'index, utilisez le '$**'
caractère générique :
schema.index({'$**': 'text'});
Cela vous permettrait d'effectuer une requête de recherche de texte paginé comme :
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Pour plus de détails, lisez la documentation complète sur les index de texte MongoDB.