MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Meminta dokumen yang sama secara paralel di API yang sama di mongoDB

Sepertinya Anda menjalankan lebih banyak kode dalam versi paralel

// 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()

Untuk versi paralel, Anda melakukan panggilan fungsi (ContentRepo.geBySkillIdWithSourceFiltered ) di dalam lingkaran. Itu sebabnya lebih lambat.

Untuk pertanyaan tentang menjalankan janji secara paralel:

Sukai Promise.all , Promise.allSettled menunggu banyak janji. Itu tidak peduli tentang urutan apa yang mereka selesaikan, atau apakah perhitungan berjalan secara paralel. Keduanya tidak menjamin konkurensi atau sebaliknya. Tugas mereka hanya untuk memastikan semua janji yang diberikan kepadanya ditangani.

Jadi Anda tidak dapat menjamin paralelisme eksekusi janji secara manual

Ini artikel menarik menjelaskan paralelisme dan Promise.All dan bagaimana browser Nodejs API berbeda dari Nodejs API yang diinstal di komputer Anda dalam hal paralelisme.

Berikut petikan kesimpulan artikel tersebut:

Catatan Samping:

Ada satu perbedaan halus:

  1. Promise.all:Menyelesaikan hanya ketika semua janji yang diberikan kepadanya diselesaikan jika tidak, ia akan menolak dengan kesalahan janji pertama yang ditolak.

  2. Promise.allSettled:Akan selalu diselesaikan dengan array yang memiliki info tentang janji yang diselesaikan dan ditolak.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara menanyakan kunci dinamis - desain skema mongodb

  2. Membatasi hasil di MongoDB tetapi masih mendapatkan hitungan penuh?

  3. Hapus catatan duplikat dari mongodb 4.0

  4. Apakah mungkin untuk mengetikkan data pemeran di dalam pipa agregasi di MongoDB?

  5. Topologi saat ini tidak mendukung sesi