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

263
Visualizações
countDocuments() is not working in api call

I am trying to get a count of products using api calls but in postman its keep loading

router.get(`/get/count`,  async (req, res) => {
  const productCount = await Product.countDocuments((count)=>count)
  if (!productCount) {
    res.status(500).json({ success: false });
  }
  res.send({
    productCount: productCount
  });
});

(node:28030) UnhandledPromiseRejectionWarning: MongooseError: Query was already executed: Product.countDocuments({})

without async and await also its not working

I try to catch the error and i got this error in postman

{
   "success": false,
   "error": "Query was already executed: Product.countDocuments({})"
}

code to catch error:

router.get(`/get/count`,   (req, res) => {
   Product.countDocuments((count)=>count).then((pcount)=>{
   if(pcount){
     return res.status(200).json({success:true})
   }else{
      return res.status(404).json({success:false})
   }
   }).catch((err)=>{
     return res.status(400).json({success:false, error:err.message})
   })

});
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

I think in Mongoose operations you want to either await or provide a callback, but not both. Attempting to do both causes it to internally execute the query twice.

Try just:

const productCount = await Product.countDocuments();
about 4 years ago · Juan Pablo Isaza Relatório

0

If you want to count all the products in your product collection, try this

db.product.countDocuments({})
about 4 years ago · Juan Pablo Isaza Relatório

0

router.get(`/get/count`,  async(req, res) => {
  let productCount = await Product.countDocuments();

  if(!productCount){
    res.send(500).json({success:false})
  }

  res.send({productCount: productCount})
});
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