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

115
Vistas
MongoDB passing query from request

I want to add filteration to my product list by product types from query.

Lets say I want to implement this:

Product.find({
   "product_type.name": {
     $in: ["A", "B"]
   }
})

Which filters my products which either has type "A" or "B". But I dont always want to filter, thats why from the request I see whether we have this filteration or not. So I check like:

let query = {}
if (req.query.product_type) {
    query.product_type.name =  {
     $in: ["A", "B"]
   }
}

Where product_type = ["A", "B"] coming from request.

Then:

Product.find(query)

when I run this I get the error

TypeError: Cannot set property 'name' of undefined.

I want the query value to be like

   "product_type.name": {
     $in: ["A", "B"]
   }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

So as @willis suggested do the following

let query = {};

if (Array.isArray(req.query.product_type) && req.query.product_type.length > 0) {
    query["product_type.name"] =  {
        $in: req.query.product_type
    }
}
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