Tengo hasta 2 modelos " car " y " carcheck ". El coche tiene elementos de placa y fabricante , modelo como modelo y carcheck tiene sus propios elementos más una referencia al modelo de coche . ¿Cómo es posible crear una consulta de búsqueda para el modelo de carcheck que busque también los elementos de referencia de la placa , el fabricante y el modelo ?
Buscar el fabricante o el modelo de la placa de inmediato solo devuelve una matriz vacía.
const defineSearchQueryForCarCheck = (req)=>{ return req.query.search ? { $or:[ {plate: {$regex:req.query.search, $options: "i"}}, {manufacturer: {$regex:req.query.search, $options: "i"}}, {model: {$regex:req.query.search, $options: "i"}}, {milage: {$regex:req.query.search, $options: "i"}} ], }: {} }El código anterior es el que devuelve la matriz vacía.
También probé car.plate , car.manufacturer , etc., o car[plate] etc., pero parece que no funcionan.
el modelo para el carCheck es:
const mongoose = require("mongoose"); const carCheckSchema = new mongoose.Schema({ car: {type: mongoose.ObjectId,ref:"Car",required:true}, milage: {type:String, required:true}, condition: {type:String, required:true}, conditionComments: {type:String}, carCheckedStatus: {type:Boolean, default:false}, }, { timestamp : true, }); module.exports = mongoose.model("CarCheck", carCheckSchema);y el modelo de coche es el siguiente código:
const mongoose = require("mongoose"); const carsSchema = new mongoose.Schema({ plate: {type:String, required:true, unique: true}, manufacturer: {type:String, required:true}, model: {type:String, required:true}, }, { timestamp : true, }); module.exports = mongoose.model("Car", carsSchema);