Най-простият, но НЕ СЕ ПРЕПОРЪЧВА начинът да направите това, което искате, е кодът по-долу, но обикновено води до ад за обратно извикване или Пирамида на гибелта и е трудно за четене, така че не използвайте това !!!!
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",{})
})
})
})
})
})
друг начин може да бъде да използвате async.js
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",{})
});
и накрая Promises Не съм пробвал или използвал това, така че не съм 100% сигурен но нещо подобно
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",{})
})
Погледнете тук за още подробности относно обещанията на mongoose Как за използване на mongoose Promise - mongo