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

124
Vistas
El sistema de búsqueda no funciona - MongoDB y Next JS

Estoy tratando de crear un sistema de búsqueda para mi API Next JS. Esta API almacena algunos datos como los precios del combustible y el nombre de la estación de combustible, etc. A continuación se muestra el código:

 class ApiFeatures { constructor(query, queryStr) { this.query = query; this.queryStr = queryStr; } search() { const keyword = this.queryStr.keyword ? { $or: [ //Causing the issue { name: { $regex: this.queryStr.keyword, $options: "i", }, }, { email: { $regex: this.queryStr.keyword, $options: "i", }, }, { //I think this is causing issue. Please read down below for more details. petrolPumpName: { $regex: this.queryStr.keyword, $options: "i", }, }, ], } : {}; this.query = this.query.find({ ...keyword }); return this; }

Función API de Next JS.

 const handler = catchAsyncErrors(async (req, res) => { const apiFeature = new ApiFeatures( //\/ this function is called without searching User.find().select("-role -verified"), req.query // \/ calling the search function ).search(); const users = await apiFeature.query; if (users.length === 0) { return res.status(404).json("No User Found"); } return res.status(200).json(users); }); export default connectToMongo(isAuthenticated(catchAsyncErrors(handler)));

usando esta función, estoy tratando de obtener datos solo para la consulta solicitada. Ejemplo: si la URL de consulta es - http://localhost.com/users?keyword=username , entonces quiero una lista de todos los usuarios con ese user en particular, pero en su lugar busca a todos los usuarios como lo hace la función find() normal de MongoDB.


**Explicación**
Funcionamiento de esta API
para combustible api
URL en la aplicación Next JS = `http://localhost.com/fuelStation`
URL de consulta llamada = `http://localhost.com/fuelStation?keyword=AbcfuelStation`
Datos devueltos =
 { "rate": 50, "quantity": 100, "amount": 5000, "fuelStationName": "Abc fuel Station" }, // Why this is below one? \/ { "rate": 50, "quantity": 100, "amount": 5000, "fuelStationName": "XYZ" }
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Dentro de ese método de consulta de búsqueda, puede pasar el campo en particular con su valor y luego le dará solo ese documento. Por ejemplo:

Usuario.find({nombre:"nombre de usuario"});

solo le devolverá el usuario con ese nombre solamente.

about 4 years ago · Santiago Gelvez 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