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

201
Visualizações
¿Cómo puedo obtener una suma de sumas usando la agregación de MongoDB?

Me gustaría obtener el total (suma) del valor totalHoursForYear . Aquí está mi agregación actual:

 const byYear = await this.workHistoryModel.aggregate([ { $group: { _id: '$year', history: { $push: '$$ROOT' }, totalHoursForYear: { $sum: { $add: [ { $multiply: ['$eightHourDays', 8] }, { $multiply: ['$tenHourDays', 10] }, { $multiply: ['$twelveHourDays', 12] }, ] } }, } }, ]);

Ahora necesito obtener una suma de totalHoursForYear para obtener el total de todos los años. es posible? Parece que no puedo obtener la sintaxis correcta. Cuando intento agregar otra suma:

 $group: { ..., totalHours: { $sum: { $add: '$totalHoursForYear' }, $push: '$$ROOT' } }

Recibo un error: "El campo 'totalHours' debe especificar un acumulador"

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Cuando necesite la suma total, puede hacer otro $group con _id:null , lo que significa considerar todos los documentos

Con su script, agregue lo siguiente para obtener el total y obtener la misma estructura.

 { $group: { _id: null, data: { $push: "$$ROOT" }, total: { $sum: "$totalHoursForYear" } } }, { "$unwind": "$data" }, { "$addFields": { _id: "$data._id", history: "$data.history", totalHoursForYear: "$data.totalHoursForYear", _id: "$$REMOVE", data: "$$REMOVE" } }

Zona de juegos Mongo en funcionamiento

over 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