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

387
Views
Mongodb: ¿Cómo puedo verificar si un conteo es menor que un valor?

Tengo una tarea para la escuela en la que tengo que recuperar una lista de estudiantes que tienen x cantidad de exámenes reprobados.

Un estudiante tiene un esquema como este un esquema de estudiante

Una prueba reprobada es cuando un estudiante tiene menos de 10 en un curso.

La cantidad aquí es la cantidad de fallas que proporciona la interfaz (la cantidad de fallas debe ser mayor que esta cantidad)

Esto es lo que tengo, pero obviamente no está funcionando. Simplemente no sé cómo verificar si el recuento de la cantidad de pruebas fallidas es mayor que 'cantidad'

 let amount = 1 let students = await Student.aggregate([ { $group: { _id: '$studentNr', count: {"$sum": amount} } }, { $match: { count: { 'courses.score':{$lt: 10} } } } ]);

gracias de antemano

RESPONDER

Gracias a Buzz Moschetti pude encontrar la respuesta correcta.

 let amount = parseInt(req.body.amount); let students = await Student.aggregate([ { $project: { name: "$name", studentNr: "$studentNr", courses: { $filter: { input: "$courses", as: "course", cond: {$lt: ["$$course.score", 10]} } } } }, {$match: {$expr: {$gt: [{$size:'$courses'}, amount]}}} ]);
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Afortunadamente, su esquema tiene todos los cursos y puntajes para cada estudiante en una matriz. Entonces, lo que debe hacer no es $group (porque cada documento es una identificación de estudiante única), sino $filter en la matriz de courses y mantener solo aquellos con score inferior a 10. Después de eso, $match con el $size de la matriz filtrada es igual a amount . Ya que esto es tarea, lo dejaré ahí.

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!