第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

同時計(jì)算多個集合中的文檔數(shù)

同時計(jì)算多個集合中的文檔數(shù)

慕妹3146593 2023-07-29 16:48:18
我想同時計(jì)算三個獨(dú)立 MongoDB 集合中的文檔數(shù)量。我現(xiàn)在所擁有的可以工作,但速度很慢。誰能幫我優(yōu)化一下嗎?app.post('/fetch-numbers',(req, res) => {  let numbers = {};  Clinic.countDocuments({})  .then(clinicCount => {    numbers.clinicCount = clinicCount;    Dentist.countDocuments({})    .then(dentistCount => {      numbers.dentistCount = dentistCount;      Booking.countDocuments({})      .then(bookingCount => {        numbers.bookingCount = bookingCount;        res.json(numbers)      })    })  })  .catch(err => {    res.json(err)  });});
查看完整描述

1 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個贊

由于所有查詢都是獨(dú)立的,因此您可以使用 并行運(yùn)行它們promise.all(),代碼將如下所示:


app.post('/fetch-numbers', async (req, res) => {

? ? Promise.all([

? ? ? ? Clinic.countDocuments({}),

? ? ? ? Dentist.countDocuments({}),

? ? ? ? Booking.countDocuments({})

? ? ])

? ? .then((docCounts) => {

? ? ? ? const numbers = docCounts.reduce((a, b) => a + b, 0)

? ? ? ? res.json(numbers);

? ? })

? ? .catch(err => res.json(err));

? ? const numbers = docCounts.reduce((a, b) => a + b, 0)

? ? res.json(numbers);

});

async-await您可以通過使用with進(jìn)一步使其更具可讀性Promise.all(),例如:


app.post('/fetch-numbers', async (req, res) => {

? ? try {

? ? ? ? const docCounts = await Promise.all([

? ? ? ? ? ? Clinic.countDocuments({}),

? ? ? ? ? ? Dentist.countDocuments({}),

? ? ? ? ? ? Booking.countDocuments({})

? ? ? ? ]);

? ? ? ? const numbers = docCounts.reduce((a, b) => a + b, 0)

? ? ? ? res.json(numbers);

? ? } catch(err) {

? ? ? ? res.json(err);

? ? }

});

查看完整回答
反對 回復(fù) 2023-07-29
  • 1 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號