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

132
Vistas
Encuentre documentos que tengan un campo mayor que la longitud de una matriz incrustada

A continuación se muestra un esquema de grupo:

 GroupSchema{
 membersLimit: Number,
 listOfStudents: [String]
}

Quiero encontrar todos los grupos donde el número de estudiantes es menor membersLimit .

Intenté la siguiente consulta

 await Group.find({
 membersLimit: { $gt: 'listOfStudents'.length },
})

Esta consulta devuelve documentos que tienen menos de 14 estudiantes, es decir, la longitud de listOfStudents .

También probé esto

 await Group.find({
 listOfStudents: { $size: { $lt: 'membersLimit' } },
})

Esta consulta devuelve el siguiente error

 error The expression evaluated to a falsy value:

 assert.ok(!isNaN(val))

¿Hay alguna manera de hacer esto con una sola consulta?

almost 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Debe usar $expr para comparar el tamaño de la matriz y el campo, así:

 db.collection.find({
 $expr: {
 $gt: [
 "$membersLimit",
 {
 "$size": "$listOfStudents"
 }
 ]
 }
})

Enlace del patio de recreo.

almost 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