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

192
Views
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
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!