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

Node.js, MongoDB - Chèn / cập nhật nhiều tài liệu và gửi một phản hồi duy nhất

Bạn có thể muốn thử async mô-đun này. Nó có một số phương pháp rất hữu ích để xử lý từng mục trong bộ sưu tập và cung cấp chức năng khi tất cả quá trình xử lý hoàn tất.

Tôi đặc biệt giới thiệu bạn đến hàng đợi , cho phép bạn thêm nhiệm vụ vào hàng đợi, sau đó khi tất cả các mục đã được xử lý, hãy làm điều gì đó.

Ví dụ:bạn có thể làm điều gì đó như:

var q = async.queue(function(task, callback) {
  // task.doc would contain your individual doc to process

  // your insert / update logic goes here...

  // Callback signifies you're done with this task
  callback();

}, 2) // <--- this number specifies the number of tasks to run in parallel

q.drain = function() {
  // this is the queue's callback, called when the queue is empty,
  // i.e. when all your documents have been processed.

  res.send(statusCode, message);
} 

Sau đó, nếu chúng tôi giả sử bạn có danh sách tài liệu của mình trong một biến có tên docs , tất cả những gì bạn cần làm để xử lý tất cả là đẩy chúng vào hàng đợi.

for (var doc in docs) {
  q.push({ doc: docs[doc] }, function(err) {
    if (err) console.log(err);
  })
}

Chú giải:bạn cần đẩy một đối tượng chứa tài liệu vào hàng đợi. Có một lỗi lạ nếu bạn cố gắng chuyển một đối tượng chưa được bao bọc.

Bây giờ, nếu bạn muốn các trạng thái cụ thể cho từng tài liệu bạn xử lý trong Mongo, điều này hoàn toàn có thể xảy ra như thế này. Miễn là bạn đã khởi tạo một cấu trúc dữ liệu bên ngoài hàng đợi, bạn có thể thêm Mã trạng thái (v.v.) vào nó khi mỗi mục được xử lý và gửi cấu trúc đến máy khách trong cống của hàng đợi hàm số. Không nên quá phức tạp.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhà điều hành đường ống tổng hợp MongoDB $ đầu tiên

  2. Không thể kết nối với mongodb Lỗi:không thể kết nối với máy chủ 127.0.0.1:27017 tại src / mongo / shell / mongo.js:L112

  3. Cách cấu hình kích thước mẫu Java Spark sparksession

  4. Kết quả truy vấn Mongoose có phải là kết quả chỉ đọc không?

  5. Tại sao bạn vẫn nên sử dụng Công cụ lưu trữ MMAPv1 cho MongoDB