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

375
Vistas
¿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 Respuestas
Responde la pregunta

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 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