I want to write a find() query inside a for loop now i want my query to execute first then to increment i of the for loop can somebody please tell me how to do it. I have read many answers here but every one dels with parallel execution of queries but i want to call them serially as otherwise there will be no use of Sort operation here.
merchantmodel.find({merchant_id: merchant_id}, {'review':1, '_id':0, 'rating':1, 'anonymous': 1, 'user_id': 1}, {sort: {time_at: -1}, limit : 3}, function(err, docs) {
if (err) {
console.log('Error Finding query results');
console.log(err);
res.json({success: 0, message : err});
return next(err);
} else {
if (docs) {
//
res.write('{');
res.write('\n');
res.write("\"success\": 1, \n")
res.write("\"message\": \"Successfully Fetched the Reviews\", \n")
res.write("\"reviews\": [");
res.write('\n');
for(var i = 0; i < docs.length; i++){
console.log('i: ', i);
if (docs[i].anonymous == 1) {
console.log('Anonymous');
res.write(JSON.stringify({review: docs[i].review, rating : docs[i].rating, user_name : "Anonymous"}));
// res.json({review: docs[i].review, rating : docs[i].rating, user_name : "Anonymous"});
} else {
var user_idd = docs[i].user_id;
var revieww = docs[i].review;
var ratingg = docs[i].rating;
console.log('user_id : ', user_idd);
console.log('review : ', revieww);
console.log('rating : ', ratingg);
usermodel.findOne({jeb_no: user_idd }, {'user_name':1, '_id':0}, function(err, docss) {
if (err) {
console.log('Error Finding query results');
console.log(err);
res.write(JSON.stringify({review: revieww, rating : ratingg, user_name : "Anonymous"}));
// res.json({review: revieww, rating : ratingg, user_name : "Anonymous"});
return next(err);
} else {
if (docss) {
console.log('Username : ', docss.user_name);
res.write(JSON.stringify({review: revieww, rating : ratingg, user_name : docss.user_name}));
// res.json({review: revieww, rating : ratingg, user_name : docss[i].user_name});
} else {
console.log('No Username');
res.write(JSON.stringify({review: revieww, rating : ratingg, user_name : "Anonymous"}));
// res.json({review: revieww, rating : ratingg, user_name : "Anonymous"});
}
}
});
}
if (i < docs.length - 1) {
res.write(',');
}
}
res.write('\n');
res.write(']');
res.write('\n');
res.write('}');
res.end();
} else {
console.log('No Reviews');
res.json({success: -1, message : "No Reviews"});
}
}
});