【发布时间】:2016-10-13 10:48:08
【问题描述】:
所以我使用这个查询来创建一个数组以传递给 ejs 以生成表行。但在我通过它之前,我还有其他查询,例如引用 id 或计数。但我数不清。我可能还有其他疑问。
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.collection函数返回任何内容。尝试返回值:return count; -
var count = db.collection('articles').count({category_id:result[i].category_id}, function(err, count) {return count;});不工作
-
刚查了一下,你实际上想做这样的事情:
var count = db.collection('articles').count({category_id: result[i].category_id});。我从未这样做过,但文档暗示这是最佳做法。 -
说 Promis 待定
-
什么意思?你能告诉我完整的错误跟踪吗?
标签: node.js mongodb express ejs