sql >> Base de Datos >  >> NoSQL >> MongoDB

La mejor manera de realizar una búsqueda de texto completo en MongoDB y Mongoose

Puede agregar un índice de texto a su definición de esquema Mongoose que le permite usar el $text operador en su find consultas para buscar todos los campos incluidos en el índice de texto.

Para crear un índice que admita la búsqueda de texto en, por ejemplo, name y profile.something :

var schema = new Schema({
  name: String,
  email: String,
  profile: {
    something: String,
    somethingElse: String
  }
});
schema.index({name: 'text', 'profile.something': 'text'});

O si desea incluir todos los campos de cadena en el índice, utilice el '$**' comodín:

schema.index({'$**': 'text'});

Esto le permitiría realizar una consulta de búsqueda de texto paginado como:

MyModel.find({$text: {$search: searchString}})
       .skip(20)
       .limit(10)
       .exec(function(err, docs) { ... });

Para obtener más detalles, lea la documentación completa de los índices de texto de MongoDB.