Você pode adicionar um índice de texto à sua definição de esquema Mongoose que permite usar o
$text
operador em seu find
consultas para pesquisar todos os campos incluídos no índice de texto. Para criar um índice para dar suporte à pesquisa de texto em, digamos,
name
e profile.something
:var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
Ou se você quiser incluir todos os campos de string no índice, use o
'$**'
curinga:schema.index({'$**': 'text'});
Isso permitiria que você realizasse uma consulta de pesquisa de texto paginada como:
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
Para obter mais detalhes, leia a documentação completa dos índices de texto do MongoDB.