Использование асинхронного ожидания для выполнения нескольких запросов БД - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь получить количество записей из нескольких коллекций mongodb как часть http-запроса.У меня есть следующий код для обработки запроса http, но есть некоторая путаница в получении другой информации.

app.get('/shopdetails/:id', function(req, res) {
  Shop.findOne({_id: req.params.id})
    .exec(function(err, data) {
     if (err) { return res.status(500).send() };

     const id = data._id;
     //1. Get number of employees count from Employee collection
     //2. Get number of product count from Product collection
     // Each collection has a field _shop as a ref field so I can
     // do 
     // Employee.countDocuments({_shop: id}) or
     // Product.countDocuments({_shop: id})
  });
});

Как использовать async / await для получения каждого счетчика перед возвратом ответа?

1 Ответ

0 голосов
/ 06 февраля 2019

Попробуйте это

app.get('/shopdetails/:id', async function(req, res) {
  try{
   const getData = await Shop.findOne({_id: req.params.id});
   const getDataEmploye = await Employee.countDocuments({_shop: id});
   const getDataProduct = await Product.countDocuments({_shop: id});
   // after that, you will get respons from Shop and Employe collection. Check console.log(getData), console.log(getDataEmploye), console.log(getDataProduct)
   //you can doing anything after get that collection data
   } catch(err){
    console.log(err)
   }

  });
});

Надеюсь, эта подсказка поможет вам.Спасибо

...