投稿用のJSONAPIを提供しています。ここでは、投稿オブジェクトを適切なユーザーモデルにリンクした後に配信したいと考えています。
私は次のような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);
});
}
});
});
ただし、複数の投稿をサーバーに保存する場合、次の問題が発生します。非同期環境で作業しているため、すべての投稿を取得して繰り返し処理し、各投稿をユーザーにリンクすることはできません。
したがって、2つのクエリを作成する必要があると思います。1つは投稿をフェッチし、もう1つはそれらを一度にリンクして、すぐに提供できるようにします。私は正しいですか?もしそうなら、どうすればそれを達成できますか?