Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

117
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda