0

私はマングースとノードjsが初めてです。プロジェクトで問題が発生します。ここに私のユーザーモデルがあります

UserSchema = new Schema({
account:String,
password:String,
display_name:String )}

と友達のモデル

FriendSchema = new Schema({

friend_from_id:{
    type:Schema.ObjectId,
    ref:'users'
},
friend_to_id:{
    type:Schema.ObjectId,
    ref:'users'
}});

および user_status モデル

UserStatusSchema = new Schema({

user_id:{
    type:Schema.ObjectId,
    ref:'users'
},
status:{
    type:Boolean
},
status_text:String,
last_updated_at:String});

このような友人モデルから結果を作成するにはどうすればよいですか

{
"_id": "55145b6b8b9c9e6c1f739441",
"friend_to_id": {
    "_id": "5502976dbef9fa180d28ea21",
    "display_name": "Jason",
    "account": "xxx@ginmed.com",
    "status":false,
    "status::"how it's going"
},
"friend_from_id": {
    "_id": "5502976dbef9fa180d28ea21",
    "display_name": "SonPham",
    "account": "yyy@ginmed.com",
    "status":true,
    "status::"how to do it"}

これは、フレンドモデルのフィールドでuser_statusとユーザーモデルの両方を組み合わせたいという意味です

4

2 に答える 2

0

質問を理解しているかどうかはよくわかりませんが、自己参照型の多対多の関係を作成したいユーザーのリストがあるようです (つまり、ユーザーは友達を持つことができ、友達になることができます)。他の多くのユーザー)。これを有効にするには、ユーザー オブジェクト (おそらく他の情報を使用) とフレンド コレクション (追加/削除された関係を使用) の両方を更新する必要があります。ソリューションについてコメントしなくても、mongoose の「フック」ミドルウェア ( http://mongoosejs.com/docs/middleware.html ) を見れば、必要なものが見つかると思います。これにより、保存前および保存後のフェーズで追加機能を実行できます。ユーザー モデルを保存したら、post save フックを使用してフレンド モデルを更新できます。

UserSchema.post('save', function(doc) {
    // Remove deleted friendships and add new ones here
});

提案された解決策については、いくつかの可能な代替/改善について、nosql (mongodb および mongoose) との多対多の関係を調べます。

于 2015-04-06T12:31:33.910 に答える