Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

136
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda