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

193
Vistas
Pase un texto sin formato en un valor de consulta en lugar de objectId en mongoose

Quiero pasar un valor de texto sin formato en lugar de ObjectId en una cadena de consulta como esta: 127.0.0.1:3000/trips?from=mumbai&to=ahmedabad&date=2022-06-02 .

En lugar de 127.0.0.1:3000/trips?from=6295f0986f9e32990d8b3488&to=6295f0c06f9e32990d8b348b&date=2022-06-02 .

Aquí está el esquema de ubicación.

 const locationSchema = new mongoose.Schema({ location: { name: { type: String, unique: true, required: true, lowercase: true, }, subLocation: [String], }, }, { timestamps: true, });

Tengo dos colecciones diferentes en la tabla de ubicaciones, una es para Mumbai y la otra para Ahmedabad y ahora hago referencia a ambas en la tabla de rutas de esta manera.

 const routeSchema = new mongoose.Schema( { Location: { from: { type: mongoose.Schema.Types.ObjectId, ref: "Location", required: true, }, to: { type: mongoose.Schema.Types.ObjectId, ref: "Location", required: true, }, } );

En primer lugar, ¿funcionará esto?

En la tabla de rutas --> En el campo desde, paso la identificación de Mumbai, que es 1, y en el campo hasta, estoy pasando la identificación de Ahmedabad, que es 2 (como ejemplo, no es el valor real), ambos provienen de la tabla de ubicación.

Cuando paso la identificación de Mumbai y Ahmedabad 1 y 2 respectivamente, funciona, pero cada vez que paso solo Mumbai y Ahmedabad como texto sin formato, arroja un error: Falló la transmisión a ObjectId por el valor "Mumbai" (escriba cadena) en ruta "Ubicación. a" para el modelo "Ruta"

aquí está la solicitud GET:

 router.get("/trips", async (req, res) => { if (!req.query.from || !req.query.to || !req.query.date) { return res.send({ error: "Please enter the data to get the trip", }); } const { from, to, date } = req.query; const routes = await Route.find({ "Location.from": from, "Location.to": to, date, }).populate({ path: "Location.from Location.to", select: "-location.subLocation -_id -createdAt -updatedAt -__v", }).select(["-_id", "-busId", "-createdAt", "-updatedAt", "-__v"]); return !routes ? res.status(500).send() : res.status(200).send(routes); });

Quiero pasar un texto sin formato como valor de consulta, no como objectId.

¿Hay alguna forma de hacerlo?

over 4 years ago · Santiago Trujillo
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