sql >> Database teknologi >  >> NoSQL >> MongoDB

Synkron funktion kalder på nodejs mongodb driver

Du kan ikke bruge et asynkront resultat som returværdi fra en funktion. Så enkelt er det. Du skal levere det asynkrone resultat til den, der ringer via et tilbagekald, der leveres som en parameter til funktionen (eller bruge futures/løfter og effektivt udskyde det trin, men det er mere involveret).

if_exists skal se sådan ud i stedet:

var if_exists = function(query, where, callback) {

  require('mongodb').connect(DB.mongo_url, function(err, db) {
    db.collection(where, function(err, coll) {
      coll.findOne(query, function(e, r) {
        //console.log(r);
        if (r === null) {
          callback(e, false);
        } else {
          callback(e, true);
        }
        // You should either close db here or connect during start up
        // and leave it open.
        db.close();
      });
    });
  });
}



  1. gem adgangskode som saltet hash i mongodb i brugersamling ved hjælp af python/bcrypt

  2. native opdatering i Sails with Mongo virker ikke med ObjectId

  3. Tornado-fejl:[Errno 24] Fejl ved for mange åbne filer

  4. Sådan søger du under arrays i MongoDB