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

91
Visualizações
MongoDB add count field in aggregation

How to add count inside of MongoDB aggregation. My document in collection looks like this:

{
    _id,
    Sat,
    calories,
    carbs,
    category,
    fat,
    fiber,
    food,
    grams,
    measure,
    protein,
    sat.fat
}

I want to do query which will return all documents where "food" is like string and I want to project only fields which user select in frontend (for example, only "protein" and "carbs"). Also I want to add count field which will count found documents. So output should look something like this:

{
  nutrientList: [
   // here come all found projected documents
  ],
  count: numberOfFOundDocs 
}

I tried with, but it doesnt work:

const { macros, foodName, skip } = req.body;
  // search word
  var keywords = [
      foodName,
      foodName.toLocaleLowerCase(),
      foodName.toLocaleUpperCase(),
      foodName.toLowerCase(),
      foodName.toUpperCase(),
    ],
regex = keywords.join("|");
Nutrient.aggregate([
      { $match: { food: { $regex: regex } } },
      {
        $project: {
          protein: {
            $cond: {
              if: { $eq: [false, macros.protein] },
              then: "$$REMOVE",
              else: "$protein",
            },
          },
          carbs: {
            $cond: {
              if: { $eq: [false, macros.carbohydrate] },
              then: "$$REMOVE",
              else: "$carbs",
            },
          },
          fat: {
            $cond: {
              if: { $eq: [false, macros.fat] },
              then: "$$REMOVE",
              else: "$fat",
            },
          },
          "sat.fat": {
            $cond: {
              if: { $eq: [false, macros.satFat] },
              then: "$$REMOVE",
              else: "$sat.fat",
            },
          },
          fiber: {
            $cond: {
              if: { $eq: [false, macros.fiber] },
              then: "$$REMOVE",
              else: "$fiber",
            },
          },
          calories: 1,
          food: 1,
          grams: 1,
          measure: 1,
          category: 1
        },
      },
      {
       $addFields: {
         'totalCount': {$count: {}}
       }
      }
    ])
about 4 years ago · Santiago Trujillo
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