2016-10-09 4 views
0

私の目標は、mongodbの助けを借りてnode.jsに簡単なニュースフィードを構築することです。これはtwitterのようなものですノード+ mongodbに簡単なニュースフィードを構築する

したがって、ユーザーAがユーザーBに従うと、シナリオはかなり単純です。後で、ユーザーのAニュースフィード(ホームページ)に、彼が投稿したようなユーザーBの活動が表示されます。

var UserSchema = new Schema({ 
    email: { type: String, unique: true, lowercase: true}, 
    followees: [{ 
    { type: Schema.Types.ObjectId, ref: 'User' } 
    }], 
    followers: [{ 
    { type: Schema.Types.ObjectId, ref: 'User' } 
    }], 
}); 

ユーザー

ため

スキーマは、現在、私のユーザーのスキーマの設計は、非常に単純です、私は別のユーザーに従うとき、それはちょうどImはフォロイーの配列属性に次のことを、ユーザのオブジェクトをプッシュします。

とこのスキーマは、Twitterへの投稿のように似た何かを、投稿するユーザーのためにある

var PostSchema = new Schema({ 
    creator: { type: Schema.Types.ObjectId, ref: 'user' } 
    title: String, 
}); 

ポストスキーマで別のスキーマは、そこにあります。

レッツは、私は私のフォロイー配列

followees: [123, 456, 657] 

のユーザーの束を持っているとフォロイー、ポスト何かのいずれかを言わせて言います。私はどのように私のニュースフィードにそれを提示するのですか?

は、ここで私はそれを行うには良いアルゴリズムを考えることができない私の試み

app.get('/feed', function(req, res, next) { 


    User.findOne({ _id: req.user._id }, function(err, foundUser) { 
     // this is pretty much my attempt :(
    }) 
}) 

です。

+0

クエリで現在のユーザーではなく、自分のフォロワと何もしていません。 – abdulbarik

+0

followies配列に何をする必要がありますか? – sinusGob

答えて

0

あなたの質問は、あなたがfollowees

によって作成されたすべてのpostsを取得したいことを言うようにそして、あなたはあなたがmongoose

にここでの考え方 how to populateを取ることができ followees

に基づいて、あなたのpostコレクションをpopulateする必要があります

次に、ユーザーの_idとのクエリを作成し、すべての投稿=>createrと一致するようにfollowees

関連する問題