Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

371
Visualizações
¿Cómo recuperar todos los datos coincidentes de la base de datos en node.js de la cadena de consulta?

Estoy creando una aplicación de reserva de boletos de autobús en node.js. He creado 4 tablas. 1 - tabla de usuarios, 2 - tabla de autobuses, 3 - tabla de reservas, 4 - tabla de rutas.

aquí está el modelo de viaje:

 const routeSchema = new mongoose.Schema({ departureLocation: { name: { type: String, required: true, }, subLocation: { type: [String] }, time: { type: String, required: true } }, arrivalLocation: { name: { type: String, required: true, }, subLocation: { type: [String] }, time : { type: String, required: true } }, duration: { type: Number, required: true, }, busId:{ type: mongoose.Schema.Types.ObjectId, ref:"Bus", required: true }, date: { type:String, required: true }, }, { timestamps: true, });

En ese modelo de viaje, solo el administrador (usuario autenticado) puede agregar datos sobre el viaje (como la ubicación de salida, la ubicación de llegada, los datos del autobús y la fecha)

 router.post("/addTrip", auth, async (req, res) => { const route = new Route(req.body); try { await route.save(); res.status(201).send(route); } catch (e) { res.status(500).send(); } });

supongamos que hay cuadros de búsqueda para que el usuario ingrese los detalles del viaje como este

https://i.stack.imgur.com/oXvsj.png

El usuario ingresa los datos y esos datos se convierten en una cadena de consulta (como esta: 127.0.0.1:3000/trips?departure=surat&arrival=bhavnagar&date=2022-05-30) y en base a esa cadena de consulta quiero mostrar todos los viajes coincidentes a el usuario.

ahora quiero filtrar los datos de acuerdo con las necesidades del usuario (también usuarios no autenticados), pero no sé cómo hacerlo.

 router.get("/trips", async (req, res) => { if(!req.query.departure || !req.query.arrival || !req.query.date){ return res.send({ error: "Please enter the data to get the trip"}) } let departure = req.query.departure; let arrival = req.query.arrival; let date = req.query.date; let routes = await Route.find().lean().exec(); let route = routes.find((route) => { route.departureLocation.name.toLowerCase() == departure && route.arrivalLocation.name.toLowerCase() == arrival && route.date == date; //What to write here }); })

He incrustado los datos del asiento en el modelo de autobús.

 const busSchema = new mongoose.Schema( { busNumber: { type: String, unique: true, required: true, }, seats: { type: Number, required: true }, }, { timestamps: true, } );

cómo mostrar a los usuarios el autobús y los asientos disponibles para esos viajes combinados

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede filter los datos usando la función de find :

 router.get('/trips', async (req, res) => { if (!req.query.departure || !req.query.arrival || !req.query.date) { return res.send({ error: 'Please enter the data to get the trip', }); } let departure = req.query.departure; let arrival = req.query.arrival; let date = req.query.date; let routes = await Route.find({ departureLocation: departure, arrivalLocation: arrival, date }).lean().exec(); return res.status(200).json(routes); });
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda