我正在为帖子提供 JSON API,我想在将帖子对象链接到适当的用户模型后传递它。
我有一个这样的 MongoDB 模式:
User = {
email: String,
password: String
};
Post = {
user: ObjectId,
text: String
};
我没有发现链接单个帖子的问题,我使用以下代码完成了该操作(我使用的是 Mongoose 和 Express):
app.get('/api/posts/:id', function(req, res){
return Post.findById(req.params.id, function(err, post) {
if (!err) {
User.findById(post.user, function(err, user){
var joinedpost = {
text : post.text,
user : user
};
return res.send(joinedpost);
});
}
});
});
但是,当我想为多个帖子提供服务时,我面临以下问题:由于我在异步环境中工作,我不能简单地获取所有帖子并遍历它们以将每个帖子链接到其用户。
所以我想我应该写两个查询,一个获取帖子,另一个同时链接它们,这样我就可以立即为它们提供服务。我对么?如果是这样,我怎样才能做到这一点?