MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Truy vấn song song cùng một tài liệu trong cùng một API trong mongoDB

Có vẻ như bạn đang chạy nhiều mã hơn trong phiên bản song song

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

Đối với phiên bản song song, bạn đang đặt lệnh gọi hàm (ContentRepo.geBySkillIdWithSourceFiltered ) bên trong một vòng lặp. Đó là lý do tại sao nó chậm hơn.

Đối với câu hỏi về việc chạy các lời hứa song song:

Giống như Promise.all , Promise.allSettled chờ đợi nhiều lời hứa. Nó không quan tâm đến thứ tự mà chúng giải quyết, hoặc liệu các tính toán có đang chạy song song hay không. Cả hai đều không đảm bảo tính đồng thời cũng như ngược lại. Nhiệm vụ của họ chỉ là đảm bảo tất cả các lời hứa được chuyển đến nó đều được xử lý.

Vì vậy, bạn không thể đảm bảo tính song song của việc thực hiện lời hứa theo cách thủ công

Đây thực sự là một bài viết thú vị giải thích tính song song và Promise.All và API Nodejs của trình duyệt khác với API Nodejs được cài đặt trên máy tính của bạn như thế nào về tính song song.

Đây là phần trích kết luận của bài báo:

Ghi chú bên lề:

Có một sự khác biệt nhỏ:

  1. Promise.all:Chỉ giải quyết khi tất cả các lời hứa được chuyển cho nó được giải quyết, nếu không nó sẽ từ chối với lỗi lời hứa bị từ chối đầu tiên.

  2. Promise.allSettled:Sẽ luôn được giải quyết với một mảng có thông tin về các lời hứa đã giải quyết và bị từ chối.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không thể nhận allowDiskUse:Đúng để làm việc với pymongo

  2. Tại sao các tên khóa được lưu trữ trong tài liệu trong MongodDB

  3. MongoDB Aggregation PHP, Group by Hours

  4. MongoDB Atlas lỗi:giản đồ không hợp lệ, mongodb mong đợi

  5. MongooseError:Bạn không thể `mongoose.connect ()` nhiều lần trong khi kết nối