Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

146
Vistas
Haga que el campo de una tabla en el texto de MongoDB se pueda buscar

Requisitos previos :

La base de datos ya está creada con las publicaciones de las colecciones y su esquema es el siguiente:

 module.exports = function(mongoose){ var Schema = mongoose.Schema; var postSchema = new Schema({ postID: String, title: String, description: String }); mongoose.model('post', postSchema, 'posts'); postSchema.index({title: 'text'}); };

Enrutador del nodo para manejar a través de una API:

 apiRouter.get('/api/searchPosts', function(req, res, next){ postModel.find( { $text : { $search : req.query.text } }, { score : { $meta: "textScore" } } ) .sort({ score : { $meta : 'textScore' } }) .exec(function(err, posts) { if(posts){ res.json({ posts : posts }); } else { res.send('Post does not exist'); } }); });

Lo que estoy tratando de lograr:

Quiero hacer un campo en mi tabla de publicaciones llamado texto de título que se pueda buscar.

Mi pila:

MongoDB, NodeJS (con Mongoose), Angular

Mi acercamiento:

Como se mencionó en los requisitos previos, he agregado la línea:

 postSchema.index({title: 'text'});

Además, ejecuté el siguiente comando en la terminal una vez que se crearon las colecciones:

 db.posts.createIndex({"title":"text"})

el problema :

Cuando accedo a esto desde la URL, funciona inicialmente, pero después de algunas semanas, deja de funcionar (¡aparece 'La publicación no existe' sin hacer ningún cambio!). Para que vuelva a funcionar, tengo que eliminar las colecciones y crear una nueva y ejecutar el comando:

 db.posts.createIndex({"title":"text"})

Luego comienza a funcionar durante unas semanas y así sucesivamente.

¿Que estoy haciendo mal? No estoy viendo una tendencia sobre lo que sucede en estas pocas semanas. He estado atascado en este problema durante algunas semanas, así que si alguien puede ayudar, se lo agradeceré mucho.

Gracias, Shayan

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Al final, la solución fue la siguiente:

 var postSchema = new Schema({ postID: String, title: { type: String, text: true }, description: String });

Esto funcionó hasta ahora.

Revisaré esto nuevamente y veré si se rompe como lo hizo cada pocas semanas. Actualizaré la publicación si lo hace.

Gracias Andrei Neagu por registrar la sugerencia 'err'. A veces, los obvios simplemente se pierden

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda