El índice de mongoose ya existe con diferentes opciones.

Estoy implementando la vista de resultados de búsqueda para mi aplicación. Descubrí que la mongoose proporciona internamente la función de búsqueda de texto completo con $ texto.

Puse el siguiente código a Post.js

PostSchema.index({desc: 'text'}); //for example 

Aquí está el código que puse en mi ruta de enrutamiento / posts.js

 Post.find({$text: {$search : 'please work!'}}).exec(function (err, posts) {...}) 

El mensaje de error que aparece es abajo.

 Index with pattern: { _fts: "text", _ftsx: 1 } already exists with different options 

¿Habría algún cuerpo que sepa cómo lidiar con este error y resolverlo? Gracias.

verifique en qué campo tiene definido su índice de texto. En este momento, mongodb solo permite un índice de texto por colección. así que si ha definido un índice de texto en la columna desc y trata de usar ese índice en alguna otra columna, está obligado a obtener este error.

¿Puedes intentar consultar tu índice y ver en qué columna lo creaste? Para obtener índices puedes hacer

 db.collection.getIndexes() 

y volverá algo como esto

 [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "some.ns" }, { "v" : 1, "key" : { "_fts" : "text", "_ftsx" : 1 }, "name" : "desc_text", "ns" : "some.ns", "weights" : { "title" : 1 }, "default_language" : "english", "language_override" : "language", "textIndexVersion" : 2 } ] 

Ahora, si desea incluir otras columnas en el scope de este índice, simplemente descargue este índice.

 db.collection.dropIndex('desc_text'); 

y luego recrearlo incluyendo todas las columnas que desea que estén cubiertas por el índice de texto,

 db.collection.createIndex({ title:'text;, body: 'text;, desc: 'text', ...... and so on }); 
Intereting Posts