Đơn giản nhất nhưng KHÔNG ĐƯỢC ĐỀ XUẤT cách để làm những gì bạn muốn sẽ là mã dưới đây nhưng nó thường dẫn đến địa ngục gọi lại hoặc Kim tự tháp diệt vong và nó khó đọc nên không sử dụng cái này !!!!
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",{})
})
})
})
})
})
một cách khác có thể là sử dụng 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",{})
});
và cuối cùng là Lời hứa Tôi chưa thử hoặc chưa sử dụng cái này nên không chắc 100% nhưng một cái gì đó như thế này
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",{})
})
Hãy xem tại đây để biết thêm một số chi tiết về lời hứa trên mongoose Cách thực hiện để sử dụng Mongoose Promise - mongo