MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Запитване на същия документ паралелно в същия API в mongoDB

Изглежда, че изпълнявате повече код в паралелната версия

// The normal version
let normal = await ContentRepo.geBySkillIdWithSourceFiltered(
    [chosenSkillsArr[0].sid!],
    readContentIds,
    body.isVideoIncluded,
    true,
    true
);


// The code inside the parallel version:
chosenSkillsArr.map(async (skill: IScrapeSkillDocument) => {
        const result = await ContentRepo.geBySkillIdWithSourceFiltered(
            [skill.sid!],
            readContentIds,
            body.isVideoIncluded,
            true,
            true
        );
    })
[chosenSkillsArr[0].sid!], vs  chosenSkillsArr.map()

За паралелната версия вие поставяте извикването на функция (ContentRepo.geBySkillIdWithSourceFiltered ) вътре в цикъл. Ето защо е по-бавно.

За въпроса за паралелното изпълнение на обещания:

Като Promise.all , Promise.allSettled очаквайте множество обещания. Не се интересува какъв ред разрешават или дали изчисленията се изпълняват паралелно. И двете не гарантират едновременност, нито обратното. Тяхната задача е просто да гарантират, че всички обещания, предадени на него, се обработват.

Така че не можете ръчно да гарантирате паралелността на изпълнението на обещанието

Ето една наистина интересна статия обясняващ паралелизма и Promise.All и как браузърът Nodejs API се различава от Nodejs API, инсталиран на вашия компютър по отношение на паралелизма.

Ето извадка от заключението на статията:

Странична бележка:

Има една фина разлика:

  1. Promise.all:Разрешава се само когато всички обещания, предадени на него, се разрешават, в противен случай той ще отхвърли с първата грешка на отхвърленото обещание.

  2. Promise.allSettled:Винаги ще се разрешава с масив с информация за разрешени и отхвърлени обещания.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb, обобщена заявка с $lookup

  2. MongoDB:Фатална грешка:Клас „MongoClient“ не е намерен

  3. Как да актуализирате поле на обект в масив с Mongoose

  4. Как да конвертирате низ в BSON?

  5. Премахване на database.yml при използване на Mongoid в Rails 3.2