2016-05-04 10 views
2

MongoDBを初めて使用しています。私はTwitterのスタイルのように、次/フォロワーを持つアプリを設計しているmongoDBの結合

私のスキーマは

UserSchema次のとおりです。すべての

username:'Alex', 
    pass:'salted', 
    likes:'200' 

FollowSchema

uid : { 
     type: Schema.ObjectId, 
     ref: 'User' 
    }, 
    fid : { 
     type: Schema.ObjectId, 
     ref: 'User' 
    } 

まず、このaはスケーラブルなデザインですか?

もしそうなら、私はログインしているユーザー以外のすべてのユーザーを取得し、各ユーザーがログインしているユーザーに従っているかどうかを確認したいと思います。

私は集計や地図作成を考えていますが、どのように接近するかわかりません。助けていただければ幸いです。

Thxを

答えて

1

mongodbには結合操作はありません。あなたはpopulate()を使うことができます。

http://mongoosejs.com/docs/populate.html

Follow.find({}).populate('uid').populate('fid').exec(function (e, d) { 
    if(e){ 
     res.json(e); 
    } 
    else { 
     res.json(d); 
    } 
}); 
+0

おかげで...しかし、どのようにユーザーがフォローしている場合を除き、私は、最初にすべてのユーザーを取得し、特定のユーザーがあなたのコードあたりusers.Asにログインし、次のされている場合見つけるのですかドキュメント、私は結果のユーザーの詳細を取得しませんでした。 –

関連する問題