sql >> Databáze >  >> NoSQL >> MongoDB

Kdy zavřít připojení k databázi MongoDB v Nodejs

Zde je potenciální řešení založené na přístupu počítání (netestoval jsem to a nedochází k zachycování chyb, ale mělo by to vyjádřit myšlenku).

Základní strategie je:Získat počet záznamů, které je třeba aktualizovat, uložit každý záznam asynchronně a v případě úspěchu provést zpětné volání, které sníží počet a zavře DB, pokud počet dosáhne 0 (když poslední aktualizace skončí). Pomocí {safe:true} můžeme zajistit, že každá aktualizace bude úspěšná.

Server mongo bude používat jedno vlákno na připojení, takže je dobré buď a) zavřít nepoužívaná připojení, nebo b) je spojit/znovu použít.

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. MongoDB C# Driver - Ignorovat pole na vazbě

  2. Připojte laravel jenssegers k mongodb atlas clusteru

  3. Dynamické řazení s Redis

  4. Jak zjistit stav master/slave redis?