So I am using this query to create an array to pass on to ejs to generate table rows. but before I pass it, I have other queries like referencing ids or count. but I get undefined on count. I may have other queries inside.
router.get('/', function(req, res, next) {
MongoClient.connect(MongoUrl, function(err, db) {
var table_data = [];
db.collection('categories').find().toArray(function(err, result) {
for (var i = 0, len = result.length; i < len; i++) {
var count;
db.collection('articles').count({category_id: result[i].category_id}, function(err, count) {
count = count;
});
table_data[i] = {
"category_id" : result[i].category_id,
"category" : result[i].category,
"count" : count,
"date_last_imported" : result[i].date_last_imported,
"feed" : result[i].feed,
"url" : result[i].url,
"xml" : result[i].xml
};
}
console.log(table_data);
res.render('categories', {title:"Categories",table_data: table_data});
});
});
});
db.collectionfunction. Try returning the value:return count;var count = db.collection('articles').count({category_id: result[i].category_id});. I've never done this, but the documentation implies this is best practice.