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

62
Visualizações
MongoDB - Count value occurrences for field

Document structure

{
"A": "1",
"B": "3",
"C": "0.000090213",
},
{
"A": "1",
"B": "3",
"C": "0.000037698",
},
{
"A": "2",
"B": "4",
"C": "0.00016664",
}

I'm trying to get the count of value for specific fields with aggregation, desired result for A and B would be

A: { "1": 2, "2": 1}
B: { "3": 2, "4": 1}

Any help is greatly appreciated.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

 db.collection.aggregate([
 {
  $facet: {
  "A": [
    {
      $group: {
        _id: "$A",
        v: {
          $sum: 1
        }
      }
    }
   ],
  "B": [
    {
      $group: {
        _id: "$B",
        v: {
          $sum: 1
        }
      }
     }
   ]
  }
  },
  {
   $addFields: {
   A: {
    $map: {
      input: "$A",
      as: "a",
      in: {
        k: "$$a._id",
        v: "$$a.v"
      }
     }
    }
  }
 },
 {
   $addFields: {
     B: {
      $map: {
      input: "$B",
      as: "b",
      in: {
        k: "$$b._id",
        v: "$$b.v"
      }
     }
    }
   }
  },
 {
   $project: {
    A: {
       "$arrayToObject": "$A"
       },
    B: {
    "$arrayToObject": "$B"
       }
      }
     }
   ])

Explained:

  1. $group the desired keys in two separate pipes with $facet
  2. $addFields to rename _id to k ( suitable for $arrayToObject )
  3. $project the desired counts with $arrayToObject.

playground

about 4 years ago · Juan Pablo Isaza 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