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

Khi nào đóng kết nối cơ sở dữ liệu MongoDB trong Nodejs

Đây là một giải pháp tiềm năng dựa trên phương pháp đếm (tôi chưa thử nghiệm nó và không có lỗi nào mắc kẹt, nhưng nó sẽ truyền đạt ý tưởng).

Chiến lược cơ bản là:Thu thập số lượng bản ghi cần được cập nhật, lưu từng bản ghi không đồng bộ và lệnh gọi lại khi thành công, điều này sẽ giảm số lượng và đóng DB nếu số lượng đạt đến 0 (khi bản cập nhật cuối cùng kết thúc). Bằng cách sử dụng {safe:true} chúng tôi có thể đảm bảo rằng mỗi lần cập nhật đều thành công.

Máy chủ mongo sẽ sử dụng một luồng cho mỗi kết nối, vì vậy, tốt nhất là a) đóng các kết nối không sử dụng hoặc b) gộp / sử dụng lại chúng.

db.open(function (err, db) {
  db.collection('foo', function (err, collection) {
    var cursor = collection.find({});
    cursor.count(function(err,count)){
      var savesPending = count;

      if(count == 0){
        db.close();
        return;
      }

      var saveFinished = function(){
        savesPending--;
        if(savesPending == 0){
          db.close();
        }
      }

      cursor.each(function (err, doc) {
        if (doc != null) {
          doc.newkey = 'foo'; // Make some changes
          db.save(doc, {safe:true}, saveFinished);
        }
      });
    })
  });
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo DB Java 3.x Driver - Group By Query

  2. Cách sử dụng thao tác $ cond trong khung tổng hợp Spring-MongoDb

  3. Khung tổng hợp Mongodb | Nhóm trên nhiều giá trị?

  4. Nối mục vào mảng tài liệu MongoDB trong PyMongo mà không cần chèn lại

  5. sao băng:làm cách nào tôi có thể sao lưu cơ sở dữ liệu mongo của mình