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?