3
我是nodejs/mongo/mongoose的新手,我正在尝试做一件非常简单的事情。我有以下模式:在猫鼬/ mongodb/node中使用异步回调循环
var authorSchema = mongoose.Schema({
name: String,
});
Author = mongoose.model('Author', authorSchema);
var bookSchema = mongoose.Schema({
title: String,
isbn: String,
pages: Number,
author: { type : mongoose.Schema.ObjectId, ref : 'Author', index: true }
});
Book = mongoose.model('Book', bookSchema);
我想为每个作者创建一个id,名称和书数的作者列表。我有这样的事情:
exports.author_list = function(req, res){
Author.find({}, function (err, authors){
var author_array = Array();
for (var i=0;i<authors.length;i++){
var author_obj = new Object();
author_obj.id = authors[i]._id;
author_obj.name = authors[i].name;
author_obj.count = 0; //here is the problem
author_array[i] = author_obj;
}
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write(JSON.stringify({ authors: author_array }));
res.end();
});
}
我知道如何做一个计数查询。我的问题是如何做一个循环的作者和异步回调填充输出。什么是适当的方式来实现这个在nodejs时尚?
感谢
什么是'Request'(似乎是一个模式,但你还没有表现出它)?什么是“请求”(for循环中使用)?你想用'author_obj.count'来计算什么? “循环作者并用异步回调填充输出”意味着什么? – 2013-04-20 13:12:04
对不起,请求是我原来的代码剩下的。我将我的代码更改为作者/书籍模型,以获得更清晰的示例。 – gtsouk 2013-04-20 13:30:58