Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

123
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!