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

116
Views
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 answers
Answer question

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 Report
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!