sql >> Database >  >> NoSQL >> MongoDB

Soms worden gegevens niet weergegeven in de browser

De eenvoudigste maar NIET AANBEVOLEN manier om te doen wat je wilt zou de onderstaande code zijn, maar het leidt meestal tot callback hell of Piramide des onheils en het is moeilijk te lezen, dus gebruik dit niet !!!!

Comp.count({}, function(err, count){
   Comp.find({}).remove({}, function(){
      Comp.create(arr, function(err, docs){
         Comp.find({}, ..., function(err, doc){                
            Comp.findOne().skip(random).exec(function(err, result){
                res.render("index",{})
            })    
         }) 
      })
   })    
})

een andere manier zou kunnen zijn om async.js . te gebruiken

async.series([
    function(callback){
        Comp.count({}, function(err, count){
            callback(null, count);
        });
    },
    function(callback){
        Comp.find({}).remove({}, function(){
            callback(null);
        });
    },
    function(callback){
        Comp.create(arr, function(err, docs){
            callback(null);
        });
    },
    function(callback){
        Comp.find({}, ..., function(err, doc){ 
            callback(null);
        });
    },
    function(callback){
        Comp.findOne().skip(random).exec(function(err, lastResult){
            callback(null, lastResult);
        });
    }
],
// optional callback, results is an array of results from each callback if any
function(err, results){
    // results is now equal to [count, lastResult]
    res.render("index",{})
});

en tot slot belooft Ik heb dit niet geprobeerd of gebruikt, dus niet 100% zeker maar zoiets als dit

var promise = Comp.count({}).exec();

promise.then(function(count) {
    return Comp.find({}).remove({}).exec();
})
.then(function() {
    return Comp.create(arr, ).remove({}).exec();
})
.then(function() {
    return Comp.find({}).remove({}).exec();
})
.then(function() {
    return Comp.find({}).skip(random).exec();
})
.then(function(result) {
    res.render("index",{})
})

Kijk hier voor meer details over beloften over mangoest Hoe mongoose Promise gebruiken - mongo




  1. Hoe efficiënt miljarden gegevens in Redis invoegen?

  2. Tips voor het upgraden van Percona Server voor MongoDB

  3. Redis-server stoppen. Noch afsluiten, noch stoppen werkt

  4. Mongodb retourneert oude collectie