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

96
Views
construcción de consulta de matriz de mongoose con literales de plantilla de javascript

estoy usando mongodb y mongoose con expressjs

Mi base de datos tiene la siguiente matriz:

 _id:6262013fa90e7b533809140d isactive:true schedule:Array 0:Object 1:Object 2:Object 3:Object 4:Object 5:Object 6:Object name:"whatever" description:"describe somthing"

En mi ruta expressjs, estoy tratando de crear una consulta como esta:

 app.get("/getmenu", (req, res)=>{ let getdate = new Date() let getday = getdate.getDay()-1 Category.find({ "schedule.1.availabletoday" : "true" }, function(error, categories){ console.log("categories :", categories) res.json({"activecategories" : categories}) }) })

Esto funciona y devolvió los resultados correctos, excepto que necesito la siguiente línea para incluir un literal de plantilla o algo equivalente, déjame explicarte:

 "schedule.1.availabletoday"

Necesito reemplazar el 1 con el valor getday. Si el valor de getday es 0, entonces la consulta será

 "schedule.0.availabletoday"

Si el valor de getday es 2, entonces la consulta buscará:

 "schedule.2.availabletoday"

Entonces, ¿cómo incluyo el valor getday en mi consulta para que sea así:

 "schedule.getday.availabletoday"

Lo intenté

 "schedule.${getday}.availabletoday"

pero devolvió resultados vacíos, por vacío me refiero a esto: []

Lo intenté

 "schedule.getday.availabletoday"

la consulta devolvió resultados vacíos: []

De acuerdo con el documento de mongodb, para buscar los elementos de la matriz, necesito las comillas alrededor de mi consulta de elementos de la matriz. Así que no puedo simplemente escribir esto:

 schedule.getday.availabletoday

¿Necesito actualizar mi aplicación de nodo o expressjs para poder usar literales de plantilla o hay algo más que me falta aquí?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Usar cadena de plantilla como

 `schedule.${getday}.availabletoday`

Según tu ejemplo:

 app.get("/getmenu", (req, res)=>{ let getdate = new Date() let getday = getdate.getDay()-1 Category.find({ `schedule.${getday}.availabletoday` : true }, function(error, categories){ console.log("categories :", categories) res.json({"activecategories" : categories}) })
about 4 years ago · Juan Pablo Isaza Report

0

Esto debería funcionar para usted:

 let getdate = new Date(); let day = getdate.getDay()-1; let query = {}; query[`schedule.${day}.availabletoday`] = true; Category.find(query, (err, categories)=> { console.log("categories :", categories) res.json({"activecategories" : categories}) })
about 4 years ago · Juan Pablo Isaza 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!