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

380
Vistas
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 Respuestas
Responde la pregunta

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